当前位置: 首页 > 面试题库 >

如何每周发送100,000封电子邮件?

卢志行
2023-03-14
问题内容

如何使用PHP每周向100,000个用户发送一封电子邮件?

重要的是,实际上应尽可能发送所有电子邮件。显然,按常规发送邮件只会产生问题。

是否有用于PHP的库使此过程更简单?


问题答案:

简短的答案: 虽然从技术上来讲,您每周可以自己发送10万封电子邮件,但是最简单,最简单,最便宜的解决方案是将其 外包 给专门从事
工作的公司之一(我 确实 说过“最便宜”:您尝试进行DIY时可以投入的开发时间(以及金钱)。

长答案: 如果您确定自己 绝对想 这样做,请为遭受伤害的世界做准备(毕竟,这是我们所谈论的电子邮件/电子失败)。你需要:

  • 电子邮件内容 不是 垃圾邮件(否则,您将在每个步骤中遇到其他主要障碍,甚至会 受到 法律影响)
  • 此外,您的内容应易于 垃圾邮件 区分开 -在某些情况下可能很难做到(我听说某家制药公司除了放弃电子邮件外几乎都必须放弃电子邮件,因为它们的商标在垃圾邮件中非常普遍)
  • 一台您自己的可配置SMTP服务器,当您将10万封电子邮件转储到该服务器时,它不会弯曲(您的ISP的上游服务器在这里不够用,您会使ISP感到非常不满;我们使用了两个专用的盒子)
  • 一些邮件包装器(例如,如果PHP是您的选择毒药,则是PhpMailer;使用PHP mail()本身就很可怕)
  • 您自己的发送方函数以循环运行,创建邮件并将它们传递给包装器(请注意,如果您的应用存在内存泄漏,则可能会遇到PHP的内存限制;您可能需要定期回收发送过程,甚至更好,将“创建电子邮件”和“发送电子邮件”完全解耦)

令人惊讶的是,这很容易。困难的部分实际上是发送它:

  • 当您同时发送太多邮件时,某些服务器将禁止您使用,因此您需要随机播放并监视队列(例如,将一封邮件发送到joe@example.com,然后将三封邮件发送到其他域,然后再将另一封邮件发送到otheraddress@example.com )

  • 处理取消订阅(由于许多受挫的用户无法一步一步取消订阅,而是选择“标记为垃圾邮件”,因此垃圾邮件过滤器确实可以学到,尤其是大型电子邮件提供商的帮助,因此许多合法新闻通讯已被重新分类为垃圾邮件)

  • 处理退回和拒绝(“没有这样的邮箱ojhn@example.com”,“邮箱john@example.com已满”)
  • 处理黑名单和将其从黑名单中删除(当然,您不是在发送垃圾邮件。有些收件人不确定-这么大的列表,无论您采取何种预防措施,有时 都会 发生。某些人(例如,您不是这样。 -严格的竞争对手)甚至可能甚至虚假地将您的邮件举报为垃圾邮件-确实如此。 平均而言 ,将自己从黑名单中删除需要花费数周的时间。)

最重要的是,您必须管理其中的法律部分(各种联邦,州和地方法律;甚至在发送到美国以外的地方也要纠结于不同的法律领域(注意:您无法找到乔@
hotmail.com居住在西南埃尔波尼亚(Elbonia),该国是世界上最严厉的反垃圾邮件法律)。

我敢肯定,我错过了一些这类的九头蛇-
你还确定要自己做吗?如果是这样,将会掀起另一波浪,这次只是发送电子邮件中固有的烦人问题。(您会看到,SMTP是一种存储转发协议,这意味着您的电子邮件将在Internet上的许多SMTP服务器之间进行混洗,以期下一封电子邮件与最终收件人更接近。)电子邮件被发送到SMTP服务器,然后将其放入转发队列;时间到了,它将进一步转发到其他SMTP服务器,直到到达给定域的SMTP服务器为止。
,或者几分钟,几小时或几天,甚至永远不会。)因此,您将看到以下问题-大多数问题可能会在途中和目的地发生:

  • 远程SMTP服务器不想与您的SMTP服务器对话
  • 您的邮件被标记为垃圾邮件(<blink>既不是您的朋友,也不是<font color=...>
  • 您的邮件被送达数天甚至数周才送达(与流行观点相反,SMTP旨在尽最大努力在将来的某个时候传递邮件-而不是立即传递)
  • 您的邮件根本没有传递(已从第4跳上的电子邮件服务器发送,尚未从第5跳上的服务器发送,当前保存该消息的服务器崩溃,数据丢失)
  • 您的邮件在途中被某些Braindead服务器所破坏(此邮件在使用base64编码时可以解决,但是大小增加了,电子邮件 看起来 更可疑)
  • 您的邮件已送达,收件人似乎不希望它们(“我确定没有签名,我记得我一年前所做的事情”(当然,先生)
  • 用户使用各种版本的Microsoft Outlook及其对Internet邮件的 特殊 处理
  • 向导的学徒模式(自我强化的积极反馈循环-换句话说,自动电子邮件作为对自动电子邮件的答复…;您 真的 不想成为将其关闭的人,因为你会生气自己一半的互联网)

排查并解决此问题将是 您的 工作(提示:您基本上不能这样做)。经营合法群发邮件业务的人们知道,最终您无法解决它,他们也无法解决-
他们有充分研究,记录和概述的原因(甚至可以作为Powerpoint演示文稿进行) -包括声音和很酷的过渡效果-
您的老板可以理解),因为他们必须在一百万次之前对此进行解释。另外,对于实际上可以解决的问题,他们非常了解如何解决。

如果毕竟,您不灰心并且仍然想要这样做,那就继续吧:您甚至有可能找到更好的方法来这样做。只知道前进的道路并不容易-发送电子邮件是微不足道的,很难发送出去。



 类似资料:
  • 我正在使用Google表单将多条消息合并到一个每日电子邮件中,使用脚本和每日定时触发器发送(代码从这里复制,下面是我的版本)。 例如,一个电子邮件地址是abc@example.co.uk,他们收到了电子邮件,但在我的收件箱(xyz@example.co.uk)中是发送到abc@example.co.uk的电子邮件,但不是转发的消息或回复。 有什么办法阻止这一切吗?

  • 问题内容: 我想向不同的收件人发送数千封不同的电子邮件,并想打开与我的SMTP的连接并保留它。我希望这样可以更快,然后重新打开错误邮件的连接。我想为此使用Apache Commons Email,但如有必要,可以使用Java Mail API。 现在,我正在执行此操作,每次打开一个都会关闭连接: 问题答案: 这是我的性能测试课程。使用一个连接发送邮件的速度快4倍,然后每次都重新打开连接(使用普通邮

  • 问题内容: 我已经使用JMS在Web应用程序中成功发送了电子邮件,但是结果仅以纯文本显示。我希望内容能够显示html。我该怎么做?这大致就是我所拥有的: 问题答案: 根据Javadoc,在需要时,这些设置将默认的mime类型设置为。而是使用代替。

  • 问题内容: 我希望我的网站能够发送电子邮件而不刷新页面。所以我想使用Javascript。 这是我要调用的函数的方式,但是我不确定要在javascript函数中放入什么。通过研究,我发现了一个使用mailto方法的示例,但是我的理解是实际上并没有直接从站点发送邮件。 所以我的问题是,我在哪里可以找到要放在JavaScript函数中的内容,以便直接从网站发送电子邮件。 问题答案: 您不能直接使用ja

  • 问题内容: 我在理解如何使用Python通过电子邮件发送附件时遇到问题。我已成功通过电子邮件将简单消息通过电子邮件发送。有人可以在电子邮件中说明如何发送附件。我知道在线上还有其他帖子,但是作为Python初学者,我很难理解它们。 问题答案: 这是另一个:

  • 问题内容: 请问如何发送utf8电子邮件? 输出量 问题答案: 您只需要在调用中添加参数即可(默认情况下假设)。 例如: