If a user sends an e-mail using an agent, he seems to be the sender or the agent signer seems to be the sender if the agent is scheduled.
This is not always the desired behavior, especially in the case of scheduled agents in which the sender of the e-mail seems to be the developer of that agent or the administrator of the server.
You can customize the sender of the e-mail saving a document directly in the mail.box as the following example:
Option Public Option Declare Sub Initialize Dim s As New NotesSession Dim db As NotesDatabase Dim dbMailBox As NotesDatabase Dim docMail As NotesDocument Dim item As NotesItem Dim rtitem As NotesRichTextItem Dim str_sendTo As String Dim str_copyTo As String Dim str_blindCopyTo As String Dim str_recipients As String Dim sendTo As Variant Dim copyTo As Variant Dim blindCopyTo As Variant Dim recipients As Variant Set db = s.Currentdatabase Set dbMailBox = New NotesDatabase(db.server, "mail.box") Set docMail = dbMailBox.Createdocument() str_sendTo = "user1;user2;user3" str_copyTo = "user4;user5;user6" str_blindCopyTo = "user7;user8;user9" str_recipients = str_sendTo+";"+str_copyTo+";"+str_blindCopyTo sendTo = Split(str_sendTo, ";") copyTo = Split(str_copyTo, ";") blindCopyTo = Split(str_blindCopyTo, ";") recipients = FullTrim(Split(str_recipients, ";")) Call docMail.Replaceitemvalue("Form", "Memo") Set item = docMail.Replaceitemvalue("PostedDate", Now) Set item = docMail.Replaceitemvalue("From", "[sender]") Set item = docMail.Replaceitemvalue("INetFrom", "[sender]") Set item = docMail.Replaceitemvalue("Principal", "[sender]") Set item = docMail.Replaceitemvalue("Recipients", recipients) Set item = docMail.Replaceitemvalue("SendTo", sendTo) Set item = docMail.Replaceitemvalue("CopyTo", copyTo) Set item = docMail.Replaceitemvalue("BlindCopyTo", blindCopyTo) Set item = docMail.Replaceitemvalue("Subject", "[subject of mail]") Set rtitem = docMail.CreateRichTextItem("Body") Call rtitem.Appendtext("[body of mail]") Call docMail.Save(True, False, False) End Sub
In this example the variables of type Variant sendTo, copyTo, BlindCopyTo and recipients were obtained using the Split function on a string but you can directly use an array of strings or just a string in the case of a single recipient.
Often these fields are copied from another document:
Set item = itemOtherDocument.CopyItemToDocument(docMail, "sendTo")
Finally in the instructions:
Set item = docMail.Replaceitemvalue("From", "[sender]") Set item =docMail.Replaceitemvalue("INetFrom", "[sender]") Set item = docMail.Replaceitemvalue("Principal", "[sender]")
You can enter the sender of the e-mail.
This code was developed on Wndows 7 service pack 1 and Lotus Notes Designer 8.5.3 but works on older versions.
Leave a Reply