Jag har en kund som jag skrivit många program som använder MAPI (Outlook Express) för att skicka automatiserade mail från de olika applikationerna. Adrian, Hej Dennis, Hej Adrian, Det skulle vara bussigt om Du skulle kunna skicka lite material i just detta problem.Från MAPI till Lotus Notes ???
Nu kommer kunden att "uppgradera" till Lotus Notes. (Corporate Policies).
Hur skall jag göra för att med automatik kunna använda Lotus Notes istället?
Finns det Lotus Notes APIs som man kan använda, kan kunden glömma mailautomatik eller ...
Tacksam om det finns någon som har en lösning.
/AdrianSv: Från MAPI till Lotus Notes ???
Får man nämna Lotus Notes bland alla MS-produkter ;-)
Ja, det går bra. Maila mig så får du tillgång till en hel del material.
Nedanstående exempel är publicerad i Mikrodatorn 2002 nr 12 och berör hur vi sänder e-post från XL via Lotus Notes.
<code>
Option Explicit
Sub Create_Lotus_Menu()
'© 2002 Alla rättigheter XL-Dennis & IDG
Dim cbNew As CommandBar
Dim bcSendTo As CommandBarControl
Dim bcLotus As CommandBarControl
Set bcSendTo = CommandBars.FindControl(Type:=msoControlPopup, ID:=30095)
Set cbNew = bcSendTo.CommandBar
Set bcLotus = cbNew.Controls.Add
With bcLotus
.BeginGroup = True
.Caption = "Sänd via Lotus Notes"
.FaceId = 719
.OnAction = "SendToLotus"
.Tag = "Lotus"
End With
End Sub
Sub Delete_Lotus_Menu()
'© 2002 Alla rättigheter XL-Dennis & IDG
Dim bcLotus As CommandBarControl
On Error Resume Next
Set bcLotus = CommandBars.FindControl(, , Tag:="Lotus")
bcLotus.Delete
End Sub
Sub SendToLotus()
'© 2002 Alla rättigheter XL-Dennis & IDG
Dim noSession As Object, noDatabase As Object, noDocument As Object
Dim obAttachment As Object, EmbedObject As Object
Dim stSubject As Variant, stAttachment As String, stTitle As String
Dim vaRecipient As Variant, vaMsg As Variant
Const EMBED_ATTACHMENT = 1454
stTitle = "Aktiv arbetsbok ej sparad"
If Len(ActiveWorkbook.Path) = 0 Then
MsgBox "Den aktiva arbetsboken måste sparas först innan " & vbCrLf _
& "den kan bifogas som bilaga till e-post!.", vbInformation, stTitle
Exit Sub
End If
If ActiveWorkbook.Saved = False Then
If MsgBox("Vill du spara gjorda ändringar innan utskick?", _
vbYesNo + vbInformation, stTitle) = vbYes Then _
ActiveWorkbook.Save
End If
Do
vaRecipient = Application.InputBox( _
Prompt:="Här anger du mottagarens mailadress ex.vis:" & vbCrLf _
& "excel@microsoft.com eller bara namnet om det är internt.", _
Title:="Mottagare", Type:=2)
Loop While vaRecipient = ""
If vaRecipient = False Then Exit Sub
Do
vaMsg = Application.InputBox( _
Prompt:="Här anges meddelandetext såsom:" & vbCrLf _
& "Bifogat finner du veckorapporten.", _
Title:="Meddelande", Type:=2)
Loop While vaMsg = ""
stSubject = "Standardmeddelande, automatskickad fil."
stAttachment = ActiveWorkbook.FullName
Set noSession = CreateObject("Notes.NotesSession")
Set noDatabase = noSession.GETDATABASE("", "")
If noDatabase.IsOpen = False Then noDatabase.OPENMAIL
Set noDocument = noDatabase.CreateDocument
Set obAttachment = noDocument.CreateRichTextItem("stAttachment")
Set EmbedObject = obAttachment.EmbedObject(EMBED_ATTACHMENT, "", stAttachment)
With noDocument
.Form = "Memo"
.SendTo = vaRecipient
.Subject = stSubject
.Body = vaMsg
.SaveMessageOnSend = True
End With
noDocument.PostedDate = Now()
noDocument.Send 0, vaRecipient
Set EmbedObject = Nothing
Set obAttachment = Nothing
Set noDocument = Nothing
Set noDatabase = Nothing
Set noSession = Nothing
' Excel aktiveras och kontrollen återgår till Excel
AppActivate "Microsoft Excel"
MsgBox "E-postmeddelandet är skapat och har skickats iväg.", vbInformation
End Sub
</code>
Beroende på den konfiguerade säkerhetsnivån kan meddelande om att ett annat program söker access till Lotus Notes förekomma.
Under vissa förhållanden kan vi få Excel att skicka arbetsböcker via Lotus Notes utan ovanstående lösning:
1. Öppna Internet Explorer.
2. Välj kommandot Verktyg | Internetalternativ... | Fliken Program.
3. För alternativet E-post anges Lotus Notes som standardprogram.
Vill vi så kan vi använda oss av early binding.
DennisSv: Från MAPI till Lotus Notes ???
Tack för Ditt snabba! svar.
Jag skall titta igenom koden och begrunda vad och hr det fungerar och hur jag skall anpassa koden till min kunds program.
Tyvärr är det inte jag som bestämmer vilka produkter som skall användas... Inom stora organisationer är de små "systrarna" tvingade att acceptera vad "mamma" hittar på och anser vara bäst ...
/MVh
AdrianSv: Från MAPI till Lotus Notes ???
Personligen tycker jag att Lotus Notes är ett suveränt program. Dock utgör LotusScript för många (inklusive mig själv) det stora problemet och här skulle jag vilja se att IBM har ett större utbud på material.
Lycka till,
DennisSv: Från MAPI till Lotus Notes ???
I och för sig är det ingen ko på isen då min kund planerar övergången till Lotus Notes först i mitten av vården (slutet april - början av maj).
Tacksam för all hjälp
adrian.frank@efpsoft.se
/Mvh
Adrian