VBA在Outlook电子邮件中插入签名

时间:2018-02-16 18:37:59

标签: excel-vba outlook-vba vba excel

我发现这段代码不久了,但它的一个问题是它不包含签名,而且在我读过的所有资源中,我都无法找到解决方案。

非常感谢任何帮助!

Public Function Email_Test()

Dim MyOutlook As Outlook.Application
Dim MyMail As Outlook.MailItem
Dim objOutlook As Object
Dim Attach As String

Set MyOutlook = New Outlook.Application

Set MyMail = MyOutlook.CreateItem(olMailItem)

 MyMail.To = "fakeperson150@gmail.com" '**put in reference to form

'MyMail.CC = MailList("Copy To")

MyMail.Subject = "This Is A Test Email" '**put in reference for subject

MyMail.Body = "Hi," & vbNewLine & vbNewLine & "See attached."

'MyMail.Send
MyMail.Display

Set MyMail = Nothing
Set MyOutlook = Nothing

End Function

3 个答案:

答案 0 :(得分:0)

Outlook是一个HTML应用程序。您需要使用.HTMLBody,并且在您放入的任何文本的末尾,请确保包含.HTMLBody = "text"& .HTMLBody。此.HTMLBody必须位于电子邮件的任何正文部分的末尾,以便自动显示签名。我会避免尝试使用多种体型,并在编写Outlook时坚持使用HTML。编码Outlook时,请在评论中使用@shmicah链接中提供的常规格式。如果您的签名没有出现在您想要的地方,那么请为您需要关闭的每一行添加

答案 1 :(得分:0)

只有在调用Display之前未修改邮件正文时,才会MailItem.Display添加签名。首先调用显示,然后仅将现有消息正文(包括签名)与您自己的数据合并。如果要保留格式,则需要使用HTMLBody属性,而不是纯文本Body。但这意味着你必须适当地合并两个HTML字符串 - 你不能只是连接它们。

答案 2 :(得分:0)

这是我用来将签名附加到邮件的代码示例。希望有帮助。

Sub Email()      '在2000-2010年工作      '此示例发送Activeworkbook的最后保存版本     昏暗的OutApp作为对象     昏暗OutMail作为对象     昏暗的路径作为字符串:路径= Sheet10.Range(“ H6”)。Text&“”&Sheet10.Range(“ I6”)。Text     昏暗的Strbody作为字符串

Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)

strbody = "Attached updated Stock."

On Error Resume Next
With OutMail
    .Display
    .To = "annettef@example.co.za"
    .CC = ""
    .BCC = ""
    .Subject = "Fruits Stock " & Path
    .HTMLBody = strbody & .HTMLBody
    .Attachments.Add ActiveWorkbook.FullName
     'You can add other files also like this
     '.Attachments.Add ("C:\test.txt")



End With
On Error GoTo 0

Set OutMail = Nothing
Set OutApp = Nothing

结束子