Problemer med doc.send() fra Notes klienten

Jeg bruger ofte doc.send() til at sende en mail fra Lotus Script. Hvis dette gøres fra klienten og brugeren benytter “Recent Contacts” og “Exhaustively check all address books” så kan der opstå Ambigious names (dupletter med forskellige email adresse).

Hvis der sendes til én modtager og navnet er ambigious – så kommer der en fejl, der kan fanges med ‘On error 4295 goto…’ Hvis der derimod sendes til flere modtagere og blot en af adressene virker – så bliver alle ambigious names ignoreret! Dvs. modtagerne får ingen mail – og afsenderen får ingen fejl.

Dette kan dog løses ved at appende et @domain navn til alle email adresser. Dermed bliver navnet ikke resolvet på klienten, men først på serveren hvor problemet ikke findes.

I stedet for doc.send false så kan vi bruge doc.send false, fixRecipients( doc.sendto )

%REM
                 Due to a bug in Notes, Technote 1153854 and the SPR# EMMS2YMU3J:
                 - https://www-304.ibm.com/support/docview.wss?uid=swg21316108
%END REM
Function fixRecipients( source As Variant ) As Variant
                 Dim session As New NotesSession
                 If session.Isonserver Then GoTo done 'not nessesary on the server (client fix only)
                 Dim i As Integer
                 If Not IsArray( source ) Then source = Split( source, "!#¤%&" )
                 
                 Dim s As String
                 
                 For i = 0 To UBound( source )
                                   s = source( i )
                                   s = session.Createname(s).Abbreviated
                                   If InStr( 1, s, "/DomainName", 5 ) > 0 And InStr( s, "@" ) = 0 Then
                                                    s = s & "@DomainName"
                                                    source( i ) = s
                                   End If
                 Next
                 
done:
                 fixRecipients = source
End Function

Links

Åben mail uden at der indsættes en signatur

Hvis du via Lotus Script opretter en ny mail og åbner den i UI – så bliver brugerens email signatur automatisk indsat. Hvis du ikke ønsker dette, så kan det undgåes med dette lille hack som Kenneth Badensø fandt på :

Call memo.ReplaceItemValue(“$IMTranscript”, “1”)

Dim uidoc As NotesUIDocument

Set uidoc = ws.Editdocument(True, memo)

Call uidoc.Document.removeItem(“$IMTranscript”)