通过电子表格自动发送大量个性化电子邮件

通过电子表格自动发送大量个性化电子邮件

我有一个包含 1000 多个姓名和电子邮件地址的电子表格,以及一个带有收件人姓名插槽的电子邮件模板。看起来像这样:

Dear [name],
...

我如何自动填写姓名栏并发送电子表格中每一行的电子邮件?

我有编程技能,因此我愿意接受代码解决方案,但我认为已经存在针对此类事情的工具/方法。

一些限制:

  • 这些需要通过我可以通过以下方式访问的电子邮件发送 Outlook 网络界面
  • 我希望收件人看不到其他收件人的电子邮件。答案是这个问题解释了如何实现这一点,但我需要一个能够个性化电子邮件的自动化解决方案。

答案1

据我所知,这可以通过 Word 的邮件合并功能完成。电子邮件将通过 Outlook 发送,您可以在“已发送邮件”文件夹中跟踪已发送邮件。如果您是 Exchange 帐户,已发送邮件将同步到网络邮件。

请查看以下文章中的步骤:使用 Excel 电子表格进行邮件合并 https://support.office.com/en-us/article/mail-merge-using-an-excel-spreadsheet-858c7d7f-5cc0-4ba1-9a7b-0a948fa3d7d3

您还可以参考 TechNet 论坛中讨论的以下主题:

邮件合并 https://social.technet.microsoft.com/Forums/office/en-US/6a56200c-d3ba-4453-85f4-b477edc72149/mail-merge?forum=word

邮件合并 https://social.technet.microsoft.com/Forums/office/en-US/5a15fb38-c7f6-46d7-b208-b38d05580005/mail-merge?forum=officeitproprevious

答案2

您可以使用 Powershell 循环遍历地址并发送电子邮件,假设您知道 Exchange 服务器的详细信息

如果电子表格是 CSV 格式,则比 Excel 文件格式更简单。CSV 格式如下所示

name,email
person1,[email protected]
person2,[email protected]

然后你将运行类似于此的脚本 - 我还没有测试过此代码,但它是一个基础

$csv = import-csv \path\to\csv

foreach($person in $csv) {
    $body = "Dear $person.name, blah blah"

    Send-MailMessage -smtpserver your.server.ip.address -From 'your@email' -To $person.email -Subject 'subject' -body $body
}

这是不使用邮件合并的最简单的方法,因为邮件合并需要您电脑上的 Outlook。

参考:

https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/import-csv?view=powershell-6

https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/send-mailmessage?view=powershell-6

相关内容