The following code works perfect to send emails, but I am having a problem attaching a report (rptAccountVerification) to it. Your input would be greatly appreciated!
Function SendNotesMail(varTo As Variant, strSubject As String, strBody As String, strFilename As String, ParamArray strFiles())
Dim doc As Object 'Lotus NOtes Document
Dim rtitem As Object '
Dim Body2 As Object
Dim ws As Object 'Lotus Notes Workspace
Dim oSess As Object 'Lotus Notes Session
Dim oDB As Object 'Lotus Notes Database
Dim X As Integer 'Counter
'use on error resume next so that the user never will get an error
'only the dialog "You have new mail" Lotus Notes can stop this macro
If fIsAppRunning = False Then
MsgBox "Lotus Notes is not running" & Chr$(10) & "Make sure Lotus Notes is running and you have logged on."
Exit Function
End If
On Error Resume Next
Set oSess = CreateObject("Notes.NotesSession")
'access the logged on users mailbox
Set oDB = oSess.GETDATABASE("", "")
Call oDB.OPENMAIL
'create a new document as add text
Set doc = oDB.CREATEDOCUMENT
Set rtitem = doc.CREATERICHTEXTITEM("Body")
doc.sendto = varTo
doc.Subject = strSubject
doc.Body = strBody & vbCrLf & vbCrLf
'attach files
If strFilename <> "" Then
Set Body2 = rtitem.EMBEDOBJECT(1454, "", strFilename)
If UBound(strFiles) > -1 Then
For X = 0 To UBound(strFiles)
Set Body2 = rtitem.EMBEDOBJECT(1454, "", strFiles(X))
Next X
End If
End If
doc.SEND False
End Function
Private Sub cmdSendNotice_Click()
Dim strTo As String 'The sendee(s) Needs to be fully qualified address. Other names seperated by commas
Dim strSubject As String 'The subject of the mail. Can be "" if no subject needed
Dim strGreet As String 'Greeting
Dim strClose As String 'Salutation
Dim strBody As String 'The main body text of the message. Use "" if no text is to be included.
Dim FirstFile As String 'If you are embedding files then this is the first one. Use "" if no files are to be sent
Dim SecondFile As String 'Add as many extra files as is needed, seperated by commas.
Dim ThirdFile As String 'And so on.
strTo = Me.UserEmail
strSubject = "Account Verification"
strGreet = "Hi, "
strClose = "Thanks!"
strBody = "This is notice to let you know that it has been atleast 1 year since your account has been verified."
strBody = strGreet & strBody & strClose & vbCrLf & "Just add new lines by concatenating vbCrLF"
FirstFile = "rptAccountVerification"
SecondFile = "G:\Apps\Windows\4bpo\life.xls"
ThirdFile = "G:\Apps\Windows\ImpactXP\CompactDbs.vbs"
SendNotesMail strTo, strSubject, strBody, FirstFile, SecondFile, ThirdFile
End Sub
Private Function fIsAppRunning() As Boolean
'Looks to see if Lotus Notes is open
'Code adapted from code by Dev Ashish
Dim lngH As Long
Dim lngX As Long, lngTmp As Long
Const WM_USER = 1024
On Local Error GoTo fIsAppRunning_Err
fIsAppRunning = False
lngH = apiFindWindow("NOTES", vbNullString)
If lngH <> 0 Then
apiSendMessage lngH, WM_USER + 18, 0, 0
lngX = apiIsIconic(lngH)
If lngX <> 0 Then
lngTmp = apiShowWindow(lngH, 1)
End If
fIsAppRunning = True
End If
fIsAppRunning_Exit:
Exit Function
fIsAppRunning_Err:
fIsAppRunning = False
Resume fIsAppRunning_Exit
End Function
Function SendNotesMail(varTo As Variant, strSubject As String, strBody As String, strFilename As String, ParamArray strFiles())
Dim doc As Object 'Lotus NOtes Document
Dim rtitem As Object '
Dim Body2 As Object
Dim ws As Object 'Lotus Notes Workspace
Dim oSess As Object 'Lotus Notes Session
Dim oDB As Object 'Lotus Notes Database
Dim X As Integer 'Counter
'use on error resume next so that the user never will get an error
'only the dialog "You have new mail" Lotus Notes can stop this macro
If fIsAppRunning = False Then
MsgBox "Lotus Notes is not running" & Chr$(10) & "Make sure Lotus Notes is running and you have logged on."
Exit Function
End If
On Error Resume Next
Set oSess = CreateObject("Notes.NotesSession")
'access the logged on users mailbox
Set oDB = oSess.GETDATABASE("", "")
Call oDB.OPENMAIL
'create a new document as add text
Set doc = oDB.CREATEDOCUMENT
Set rtitem = doc.CREATERICHTEXTITEM("Body")
doc.sendto = varTo
doc.Subject = strSubject
doc.Body = strBody & vbCrLf & vbCrLf
'attach files
If strFilename <> "" Then
Set Body2 = rtitem.EMBEDOBJECT(1454, "", strFilename)
If UBound(strFiles) > -1 Then
For X = 0 To UBound(strFiles)
Set Body2 = rtitem.EMBEDOBJECT(1454, "", strFiles(X))
Next X
End If
End If
doc.SEND False
End Function
Private Sub cmdSendNotice_Click()
Dim strTo As String 'The sendee(s) Needs to be fully qualified address. Other names seperated by commas
Dim strSubject As String 'The subject of the mail. Can be "" if no subject needed
Dim strGreet As String 'Greeting
Dim strClose As String 'Salutation
Dim strBody As String 'The main body text of the message. Use "" if no text is to be included.
Dim FirstFile As String 'If you are embedding files then this is the first one. Use "" if no files are to be sent
Dim SecondFile As String 'Add as many extra files as is needed, seperated by commas.
Dim ThirdFile As String 'And so on.
strTo = Me.UserEmail
strSubject = "Account Verification"
strGreet = "Hi, "
strClose = "Thanks!"
strBody = "This is notice to let you know that it has been atleast 1 year since your account has been verified."
strBody = strGreet & strBody & strClose & vbCrLf & "Just add new lines by concatenating vbCrLF"
FirstFile = "rptAccountVerification"
SecondFile = "G:\Apps\Windows\4bpo\life.xls"
ThirdFile = "G:\Apps\Windows\ImpactXP\CompactDbs.vbs"
SendNotesMail strTo, strSubject, strBody, FirstFile, SecondFile, ThirdFile
End Sub
Private Function fIsAppRunning() As Boolean
'Looks to see if Lotus Notes is open
'Code adapted from code by Dev Ashish
Dim lngH As Long
Dim lngX As Long, lngTmp As Long
Const WM_USER = 1024
On Local Error GoTo fIsAppRunning_Err
fIsAppRunning = False
lngH = apiFindWindow("NOTES", vbNullString)
If lngH <> 0 Then
apiSendMessage lngH, WM_USER + 18, 0, 0
lngX = apiIsIconic(lngH)
If lngX <> 0 Then
lngTmp = apiShowWindow(lngH, 1)
End If
fIsAppRunning = True
End If
fIsAppRunning_Exit:
Exit Function
fIsAppRunning_Err:
fIsAppRunning = False
Resume fIsAppRunning_Exit
End Function