VBA通过带有附件的Lotus Notes 6.5发送电子邮件 [英] VBA to send email via Lotus Notes 6.5 with Attachment

查看:475
本文介绍了VBA通过带有附件的Lotus Notes 6.5发送电子邮件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有大问题. 我有宏可以通过Lotus Notes 6.5从Excel发送多封电子邮件

I have big problem. I have macro to send multiple emails from Excel via Lotus Notes 6.5

我的宏的代码是:

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.

文件1.pdf与带有VBA的xls位于同一文件夹中.

File 1.pdf is in the same folder as my xls with VBA.

您能帮我吗?

推荐答案

0.您的代码中不清楚Attachment变量是由值填充的.确保此值不为空.
1.根据文档,您只能为

0. It is not clear in your code where you Attachment variable is filled by value. Make sure that this value is not empty.
1. According to documentation you can specify only type% and source$ parameters for EmbedObject method:

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

2.您可以使用Body字段嵌入对象:

2. You can use Body field to embed an object:

'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

这篇关于VBA通过带有附件的Lotus Notes 6.5发送电子邮件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆