我一直试图在excel中创建一个automailer,但当我尝试发送它时,签名没有出现。这是VB脚本:
Sub Send_email_fromexcel()
Dim OApp As Outlook.Application, outlookmailitem As Outlook.MailItem, signature As String
Dim edress As String
Dim subj As String
Dim message As String
Dim filename As String
Dim OApp As Object
Dim outlookmailitem As Object
Dim signature As String
Dim myAttachments As Object
Dim path As String
Dim lastrow As Integer
Dim attachment As String
Dim x As Integer
x = 2
Do While Sheet1.Cells(x, 1) <> ""
Set OApp = CreateObject("Outlook.Application")
Set outlookmailitem = OApp.createitem(0)
Set myAttachments = outlookmailitem.Attachments
path = "H:Marketing"
edress = Sheet1.Cells(x, 1)
cc = Sheet1.Cells(x, 3)
subj = Sheet1.Cells(x, 4)
filename = Sheet1.Cells(x, 5)
body = Sheet1.Cells(x, 6)
attachment = path + filename
signature = outlookmailitem.body
'With outlookmailitem
outlookmailitem.To = edress
outlookmailitem.cc = cc
outlookmailitem.bcc = ""
outlookmailitem.Subject = subj
myAttachments.Add (attachment)
outlookmailitem.display
outlookmailitem.body = body & vbNewLine & signature
' outlookmailitem.send
lastrow = lastrow + 1
edress = ""
x = x + 1
Loop
Set OApp = Nothing
Set outlookmailitem = Nothing
End Sub
在代码中,您使用的是一个表示消息正文的纯文本字符串:
signature = outlookmailitem.body
'...
outlookmailitem.body = body & vbNewLine & signature
很可能您想要使用HTMLBody属性,该属性返回或设置一个表示指定项的HTML正文的字符串。设置HTMLBody
属性将始终立即更新Body
属性。
此外,在从消息体获取签名之前,您可以尝试调用Display
方法。