简体   繁体   English

VBA通过带有附件的Lotus Notes 6.5发送电子邮件

[英]VBA to send email via Lotus Notes 6.5 with Attachment

I have big problem. 我有大问题。 I have macro to send multiple emails from Excel via Lotus Notes 6.5 我有宏可以通过Lotus Notes 6.5从Excel发送多封电子邮件

The code of my macro is: 我的宏的代码是:

Public Function SendNotesMail()
'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 Subject As String
Dim Attachment As String
Dim Recipient As String
Dim BodyText As String
Dim SaveIt As Boolean
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)
Dim EmailSend As Object
Dim EmailApp As Object

'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 = "admin@tlen.pl"
MailDoc.Subject = "TDBank Validation File"
MailDoc.Body = "Here is your TDBank Validation File for today."
MailDoc.SAVEMESSAGEONSEND = SaveIt

'Set up the embedded object and attachment and attach it

If Attachment <> "" Then
Set AttachME = MailDoc.CREATERICHTEXTITEM.Add("H:\Document\1.pdf")
Set EmbedObj = AttachME.EMBEDOBJECT(1454, "", Attachment, "H:\Document\1.pdf")
MailDoc.CREATERICHTEXTITEM ("H:\Document\1.pdf")

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 Function

And problem is that attachments is not assigned to email when i receiving it. 问题是我收到邮件时附件未分配给电子邮件。 I did not get any error or sth like that. 我没有得到任何错误或类似的东西。 Just only email without attachment. 仅电子邮件不带附件。

File 1.pdf is in the same folder as my xls with VBA. 文件1.pdf与带有VBA的xls位于同一文件夹中。

Could You please help me. 请你帮助我好吗。

0. It is not clear in your code where you Attachment variable is filled by value. 0。在代码中不清楚用值填充Attachment变量的位置。 Make sure that this value is not empty. 确保此值不为空。
1. According to documentation you can specify only type% and source$ parameters for EmbedObject method: 1.根据文档,您只能为EmbedObject方法指定type%source$参数:

Set notesEmbeddedObject = notesRichTextItem.EmbedObject(1454, "", "H:\Document\1.pdf")

2. You can use Body field to embed an object: 2.您可以使用“ Body字段嵌入对象:

'Your code

Set MailDoc = Maildb.CREATEDOCUMENT
MailDoc.Form = "Memo"
MailDoc.sendto = "admin@example.com"
MailDoc.Subject = "TDBank Validation File"
MailDoc.SAVEMESSAGEONSEND = SaveIt

Dim richTextItem As Object
Set richTextItem = MailDoc.CreateRichTextItem("Body")
richTextItem.AppendText("Here is your TDBank Validation File for today.")

If Attachment <> "" Then
    richTextItem.EmbedObject(1454, "", "H:\Document\1.pdf")
End If

'Your code

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM