Using a specific Lotus Email Account

clive2002

Registered User.
Local time
Today, 23:55
Joined
Apr 21, 2002
Messages
91
I've been using the below code for a project which has been working perfectly, however i know have a specific email account i want to use with the code below to send emails.

The code only seems to work with my default account, even if i open lotus with the other account first.

how can i change the code to so it use my other account, i think it relates to this piece.


'Get the sessions username and then calculate the mail file name.
'You may or may not need this as for MailDBname with some systems you can pass an empty string
UserName = Session.UserName
MailDbName = Left$(UserName, 1) & Right$(UserName, (Len(UserName) - InStr(1, UserName, " "))) & ".nsf"

But i'm not sure how it works

Public Sub SendNotesMail(Subject As String, Attachment As String, Recipient As String, BodyText As String, SaveIt As Boolean)
'This public sub will send a mail and attachment if neccessary to the recipient including the body text.
'Requires that notes client is installed on the system.

'Set up the objects required for Automation into lotus notes
Dim Maildb As Object 'The mail database
Dim UserName As String 'The current users notes name
Dim MailDbName As String 'THe current users notes mail database name
Dim MailDoc As Object 'The mail document itself
Dim AttachME As Object 'The attachment richtextfile object
Dim Session As Object 'The notes session
Dim EmbedObj As Object 'The embedded object (Attachment)

'Start a session to notes
Set Session = CreateObject("Notes.NotesSession")

'Get the sessions username and then calculate the mail file name.
'You may or may not need this as for MailDBname with some systems you can pass an empty string
UserName = Session.UserName
MailDbName = Left$(UserName, 1) & Right$(UserName, (Len(UserName) - InStr(1, UserName, " "))) & ".nsf"

'Open the mail database in notes
Set Maildb = Session.GETDATABASE("", MailDbName)
If Maildb.ISOPEN = True Then
'Already open for mail
Else
Maildb.OPENMAIL
End If

'Set up the new mail document
Set MailDoc = Maildb.CREATEDOCUMENT
MailDoc.Form = "Memo"
MailDoc.sendto = Recipient
MailDoc.Subject = Subject
MailDoc.Body = BodyText
MailDoc.SAVEMESSAGEONSEND = SaveIt

'Set up the embedded object and attachment and attach it
If Attachment <> "" Then
Set AttachME = MailDoc.CREATERICHTEXTITEM("Attachment")
Set EmbedObj = AttachME.EMBEDOBJECT(1454, "", Attachment, "Attachment")
MailDoc.CREATERICHTEXTITEM ("Attachment")
End If

'Send the document
MailDoc.SEND 0, Recipient

'Clean Up
Set Maildb = Nothing
Set MailDoc = Nothing
Set AttachME = Nothing
Set Session = Nothing
Set EmbedObj = Nothing
End Sub


eg.
SendNotesMail "Testl","C:\123.xls","jdoe@abc.com","Hello",True
 
Clive,

After much tickering, I've found a way to send from another mailbox (if you have access to it, of course).

I've not managed to solve how to save the mail in the 'Sent' folder - it just saves it in the 'All Documents' folder!



Public Sub SendNotesMail(Subject As String, Recipient As String, BodyText As String, SaveIt As Boolean)

'Set up the objects required for Automation into lotus notes
Dim Maildb As Object 'The mail database
Dim MailDbName As String 'The users notes mail database name
Dim Session As Object 'The notes session

'Start a Workspace to Notes
Set Session = CreateObject("Notes.NotesUIWORKSPACE")

MailDbName = "mail\{mailID}.nsf" 'replace {mailID} with the .nsf name of the mailbox you want to send from

'Create a new mail document
Set Maildb = Session.COMPOSEDOCUMENT("UKPBR01", MailDbName, "Memo")
Maildb.FIELDSETTEXT "Subject", Subject
Maildb.FIELDSETTEXT "Body", BodyText
Maildb.FIELDSETTEXT "SendTo", Recipient

'Send the document
If SaveIt Then Maildb.Save
Maildb.SEND
Maildb.Close

'Clean Up
Set Maildb = Nothing
Set Session = Nothing

End Sub
 

Users who are viewing this thread

Back
Top Bottom