无法向群发电子邮件 VBA 添加签名,也无法更改发件人帐户

Posted

技术标签:

【中文标题】无法向群发电子邮件 VBA 添加签名,也无法更改发件人帐户【英文标题】:Can't add signature to mass email VBA nor change the from account 【发布时间】:2022-01-10 16:36:39 【问题描述】:

我是一个超级初学者,通过观看大量 youtube 视频,我设法将代码放在下面 我无法在电子邮件上签名并更改发件人帐户 使用此代码插入签名,但它不保持相同的格式 我尝试了另一个从word文档中复制它的方法,但是当我尝试粘贴它时,它从来没有用过 有人可以帮我吗?我已经尝试了我在 *** 和谷歌搜索中找到的所有帖子

Sub Send_Mails()
Dim sh As Worksheet
Set sh = ThisWorkbook.Sheets("Sheet1")
Dim I As Integer

Dim OA As Object
Dim msg As Object
Dim OutAccount As Outlook.Account

Set OA = CreateObject("outlook.application")

Dim last_row As Integer
last_row = Application.CountA(sh.Range("A:A"))

Set msg = OA.CreateItem(0)

With msg
        .Display
    End With
    Signature = msg.Body

For I = 2 To last_row

'msg.Display

msg.To = sh.Range("A" & I).Value
msg.cc = sh.Range("B" & I).Value
msg.Subject = sh.Range("C" & I).Value
msg.Body = sh.Range("D" & I).Value & Signature

    
     
If sh.Range("E" & I).Value <> "" Then
msg.attachments.Add sh.Range("E" & I).Value
End If
 

'msg.send


sh.Range("F" & I).Value = "Sent"

Next I

MsgBox "All the mails have been sent successfully"

End Sub

【问题讨论】:

所以您正试图发送大量电子邮件并让它看起来像是来自您以外的其他人?为什么需要这样做? 因为我们有一个普通账户 ex。 Info@company.com,我们会从该帐户发送所有官方通信:) 看看Send email from another address using VBA和Insert Outlook Signature in mail。 使用.htmlBody***.com/a/12990825/1571407。 每个帖子关注一个问题。 【参考方案1】:

签名不保留原始格式,因为代码中使用了纯文本属性。

Signature = msg.Body

相反,您需要使用HTMLBody 属性,该属性返回带有所有格式设置的HTML 标记。您也可以考虑使用 Word 对象模型(参见 Inspector 类的 WordEditor 属性)。

要将 From 帐户正确设置为 Outlook 配置文件中设置的帐户,您可以使用 SendUsingAccount 属性,该属性返回或设置一个 Account 对象,该对象代表 MailItem 所在的帐户被发送。例如:

Sub SendUsingAccount() 
 Dim oAccount As Outlook.account
 For Each oAccount In Application.Session.Accounts
   If oAccount.AccountType = olPop3 Then 
     Dim oMail As Outlook.MailItem 
     Set oMail = Application.CreateItem(olMailItem) 
     oMail.Subject = "Sent using POP3 Account" 
     oMail.Recipients.Add ("someone@example.com") 
     oMail.Recipients.ResolveAll 
     Set oMail.SendUsingAccount = oAccount 
     oMail.Send 
   End If 
 Next 
End Sub

此外,如果您在 Exchange 服务器端配置了足够的权限,您可以考虑使用 SentOnBehalfOfName 属性,该属性返回一个字符串,指示邮件的预期发件人的显示名称。

【讨论】:

以上是关于无法向群发电子邮件 VBA 添加签名,也无法更改发件人帐户的主要内容,如果未能解决你的问题,请参考以下文章

外贸邮箱选择,如何群发邮件?

邮件为啥发不出去?

使用邮件群发开发国外客户,满客邮件好操作吗?

如何用邮箱群发广告邮件?

我用FOXMAIL发邮件无法设置字体颜色

Excel中的VBA创建带有表格和签名的电子邮件