如何在 php 中向数千名用户发送安全(爆炸)电子邮件?
Posted
技术标签:
【中文标题】如何在 php 中向数千名用户发送安全(爆炸)电子邮件?【英文标题】:How to send a secured (blast) email to thousands users in php? 【发布时间】:2010-11-21 04:50:58 【问题描述】:如果您要向 3000++ 个用户发送电子邮件。你还会使用php邮件功能吗?我听说,它不够安全。如何发送安全爆炸电子邮件?如果可能,我不想使用第三方软件。
如果你要在php中发送爆炸邮件,你会在php中使用什么方法或函数? (试过google“高级php发送邮件”,但没找到好答案)
哦,听说过这个叫phpmailer的东西,好用吗?我应该用我当前的邮件功能替换它吗? (免费)
最后,您需要准备哪些东西来发送数千封电子邮件?
【问题讨论】:
【参考方案1】:我为大型列表找到的最佳方法是将 PEAR Mail 与 Mail_Queue 结合使用。本质上,消息排队等待传递(存储为 mysql 数据库中的记录),然后一个 cron 作业在整个晚上定期运行,以可管理的批次发送它们(使用 php CLI)。
【讨论】:
+1,简洁明了。可能比我的答案更有用。 ;)【参考方案2】:电子邮件的性质通常意味着它不安全。您可以使用数字签名对邮件进行签名或使用 PGP/GPG 对其进行加密,但大多数用户将无法解密它们。这就是为什么来自您的金融机构的电子邮件通常不包含敏感数据的原因——即使他们的邮件也不安全。
如果您只是想确保它们不会被垃圾邮件阻止,则必须使用正确的 SPF 记录和 DomainKeys/SenderID 设置您的邮件服务器。然后,您可以使用某种排队系统(例如 PEAR 的邮件队列)来发送消息。
【讨论】:
【参考方案3】:在爆破电子邮件方面,第 3 方实现很好,但实际上编写自己的并不难。基本上,您需要在数据库中进行 PHP 队列爆炸作业,并让服务或守护程序每隔一段时间进行轮询以查看是否有工作要做。如果有,它会分块发送爆炸。
就“安全邮件”而言,确实没有这样的东西。如果您需要提醒用户注意敏感数据,请执行银行的操作。发送通知,告诉用户只需登录其帐户即可查看网站上的消息。
【讨论】:
您是指退回邮件处理程序吗?你能详细说明一下吗?我的意思是,如何开始编写退回邮件功能?【参考方案4】:PHP 不是邮件程序,因此它不提供邮件管理功能。 mail()
调用只是一个通道,您可以通过该通道将电子邮件传递给邮件处理守护程序。如果您要管理大量电子邮件,则需要第三方软件,或者您必须编写自己的处理例程。
当您说mail()
不安全时,我不确定您的意思。这真的没有意义,就像说phpinfo()
或array_flip()
或任何其他功能都不安全。您对安全电子邮件有什么具体定义吗?
无论如何,通过 PHP 发送批量电子邮件的一种快速而肮脏的方法是简单地将进程置于后台。创建一个小的 PHP 作业运行器脚本,该脚本一次从队列(例如数据库表)中提取大量电子邮件地址并发送电子邮件。您可以通过 cron 定期执行 job-runner。
正如其他海报所提到的,有一些第三方软件包可以为您处理这个问题。
【讨论】:
我明白了。有什么第三方包你想推荐给我们吗??【参考方案5】:我同意安全性可能不是问题。您的上游邮件提供商很难不遇到某种垃圾邮件感应配额限制。即使您整晚小批量发送它们,也可能有 24 小时期限的限制——但也许没有。 ISP 和托管服务提供商不想托管垃圾邮件发送者。
我会咨询您的托管服务提供商或 ISP 以了解具体信息。
【讨论】:
【参考方案6】:同意 NDP - 如果您开始发送数千封电子邮件,您可能会遇到麻烦。如果您在共享服务器上,并且它的 IP 地址被列入垃圾邮件黑名单,那么您将扰乱该服务器上的其他网站。
我会使用诸如 Campaign Monitor 或 Vertical Response 之类的第 3 方系统。您可以通过他们的 API 集成您的系统。
如果您打算使用 PHP,PHPMailer 非常好,但不确定它是否具有排队发送电子邮件或批量发送电子邮件的功能。另一种选择是使用一些开源软件,例如 PHPList (http://www.phplist.com)。
【讨论】:
【参考方案7】:这不是完整的解决方案,但我认为他们有一种叫做“电子邮件证书”的东西,可以证明你是谁,并且你有权打开它。也许看看这家公司提供什么:
http://www.thawte.com/secure-email/personal-email-certificates/
【讨论】:
所以拿到证书后就可以使用php简单邮件功能了吗??以上是关于如何在 php 中向数千名用户发送安全(爆炸)电子邮件?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Gmail 的 SMTP 客户端在 C# 中向自己发送电子邮件,而无需在 Gmail 设置中启用安全性较低的应用程序的访问权限?
Excel VBA:如何在 Outlook 中向组发送电子邮件?