无法向群发电子邮件 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 添加签名,也无法更改发件人帐户的主要内容,如果未能解决你的问题,请参考以下文章