【问题标题】:What the best way to implementation email sending?实现电子邮件发送的最佳方式是什么?
【发布时间】:2013-02-12 22:28:24
【问题描述】:

我有网络应用程序,我想实现电子邮件系统。我的 Web 应用程序是一个社交网络:当用户更新状态并且任何其他用户对其状态发表评论时,用户会收到电子邮件。

实现它的最佳方法是什么?在用户发表评论后,我一直在实施电子邮件系统,然后我同时向他们的用户发送电子邮件。使用计划发送电子邮件的第二个选项。

我正在使用 PHP 和 SwiftMailer。

澄清一下:我应该直接向用户发送电子邮件,还是应该使用数据库来排队邮件并通过 cron 发送?

【问题讨论】:

  • 两个想法:最重要的是,使用 Swiftmailer 之类的库。其次,在您的数据库中对电子邮件进行排队,这样您就可以看到您发送给谁的内容,并且您可以重新发送任何失败的邮件(例如,如果您的 SMTP 服务出现故障)。
  • 感谢您的回答,是的,我正在使用 swift mailer。你知道如何检测邮件发送成功与否,如果邮件发送不成功我可以重新发送。
  • 我建议使用库,因为您在原始问题中没有提到它。是的,我会使用队列。如果 SwiftMailer 无法联系您的 SMTP 服务器,我应该认为它会引发异常 - 抓住它并在相关的数据库记录中标记它。
  • 我的问题仍然不清楚,发送邮件库仅检测错误的身份验证和错误的电子邮件格式等,而不是检测用户端是否收到电子邮件。 ex 被拒绝,因为 1) 发件人是垃圾邮件 2) 收件人是假的但格式正确的电子邮件
  • 我认为this 是您需要的,使用this search 找到。请记住,您只能在联系收件人的 SMTP 服务器时检测邮件是否退回 - 如果它被接受并且后来被垃圾邮件(这不是退回,即使它生成对一个容易伪造的地址的回复)然后你无法检测到这一点。

标签: php web-applications architecture swiftmailer


【解决方案1】:

请尝试phpmailer库函数

【讨论】:

    【解决方案2】:

    你也可以试试 PostageApp。

    http://postageapp.com/

    【讨论】:

    • 我认为主要问题不是我如何选择发送邮件的库。请再次查看我的问题,我一直在更新我的问题,谢谢:)
    【解决方案3】:

    您可以使用内置的 php 功能。请访问以下链接。 http://php.net/manual/en/function.mail.php

    【讨论】:

    • 我倾向于不同意:发送邮件实际上非常困难。附件、多部分 html/文本等最好通过库来完成。
    【解决方案4】:

    我的建议是使用带有 API 的邮件服务,例如 Sendgrid 处理大量邮件(每天超过 100 封邮件),否则只需使用您选择的 php 邮件程序。

    通过您自己的服务器发送邮件有几个缺点,主要与被列入黑名单或标记为垃圾邮件有关。这是因为其他邮件服务器并不真正了解您的邮件,如果突然出现大量邮件,您看起来就像一个垃圾邮件机器人。

    为了避免一次发送大量邮件,您还必须以某种方式通过批量发送排队,为此您需要 cron 作业等。不列入黑名单也不是很容易,简单的域名更改可能会让您重新识别

    邮寄服务确实可以让您摆脱大部分这些问题,而且总体而言相当便宜。对于单个项目而言,了解内部邮件解决方案的缺陷通常太多了,因为它是一个相当大的话题。

    免责声明:我不为任何邮件发送服务工作,我只是碰巧在一个最近因为糟糕的电子邮件发送习惯而将他们的域列入黑名单的地方工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-04
      • 1970-01-01
      • 2011-06-18
      • 2010-09-08
      • 2014-08-19
      • 1970-01-01
      • 2018-02-21
      相关资源
      最近更新 更多