PHP邮件功能和使用Sendgrid、Mandrill等电子邮件传递服务的区别
我正在构建一个程序,需要根据特定事件发送多封电子邮件。我已经使用PHP邮件函数进行了编码,但有人建议我不要使用它 有人能解释一下PHP邮件功能与使用Sendgrid、Mandrill等商业服务之间的区别吗?当我可以很好地使用免费的PHP mail函数发送邮件时,为什么还要使用这些服务呢?mail()函数在*nix系统上非常简单,它只执行本地命令PHP邮件功能和使用Sendgrid、Mandrill等电子邮件传递服务的区别,php,email,Php,Email,我正在构建一个程序,需要根据特定事件发送多封电子邮件。我已经使用PHP邮件函数进行了编码,但有人建议我不要使用它 有人能解释一下PHP邮件功能与使用Sendgrid、Mandrill等商业服务之间的区别吗?当我可以很好地使用免费的PHP mail函数发送邮件时,为什么还要使用这些服务呢?mail()函数在*nix系统上非常简单,它只执行本地命令sendmail来发送邮件。它确实有以下缺点: 在许多廉价的托管环境中不起作用 若邮件被发送MTA接受,您并没有任何信息,它可能会被拒绝或隔离,或者永远
sendmail
来发送邮件。它确实有以下缺点:
- 在许多廉价的托管环境中不起作用
- 若邮件被发送MTA接受,您并没有任何信息,它可能会被拒绝或隔离,或者永远留在本地队列中
- 在某些环境中,由于EOL字符错误(\r\r\n而不是\r\n),它可能会生成乱码头
- 您可以轻松地发送带有附件和图像的HTML邮件
- 您可以通过外部SMTP服务发送邮件
- 他们有DKIM和S/MIME签名支持
另外,我不使用Sendgrid、Mandrill等商业服务,因此无法进行比较 您不能使用此功能一次性发送大量电子邮件。 例如,如果您想向10万用户发送电子邮件,则必须迭代电子邮件ID。是的,您可以使用cc,但是如果您有一个模板,在每个电子邮件中都会添加用户名,如: 尊敬的用户abc 你得一个接一个地寄。除非使用多个进程,否则无法在邮件功能中实现此突发电子邮件拍摄功能
MailQueue
很好,但我使用过它,它做同样的事情,将电子邮件保存到数据库中,并将电子邮件排成队列,然后逐个发送
我们还有swift-mailer
同样,这是你的要求。如果您不需要发送数百个对时间敏感的通知,那么就不需要这些工具。将mail()与商业服务进行比较就像将ant与elephant进行比较一样。如果您不需要大量定制,mail()对于一些来自服务器的快速通知是很好的,但是如果您想做一些类似电子邮件活动的事情,您必须进行大量额外的服务器设置,并在mail()函数周围构建大量定制功能。商业服务有利于活动,但不利于通知(在imho中浪费金钱)。尝试在电子邮件中使用一些开源php库,这将为您排序许多自定义功能。批量邮件和活动管理是一项复杂的组织和技术挑战,但大多数开源php库(只添加html格式和附件支持)都无法帮到您 他们不会处理、垃圾邮件陷阱避免、订阅管理等问题。哪些好的批量电子邮件提供
如果您知道自己在做什么,对系统和NS记录拥有完全的管理权限,并有时间编写代码,那么,是的,您可以构建相同的服务—但不仅仅是将蚂蚁与大象进行比较—而是将扳手与橘子进行比较。首先,从专业角度看,我是全球ESP的一部分“这有助于品牌最多向客户发送业务关键型触发式和事务性电子邮件 但是,我在这里回答这个问题的目的并不是推广ESP over PHP邮件功能。我将与大家分享我们在Pepipost实验室研究期间观察到的一些事实
简而言之,如果您计划发送几百封电子邮件,那么PHP mail函数可能可以使用,但要进一步扩展,使用一个好的ESP(电子邮件服务提供商)是很重要的。IMHO如果您注意正确创建邮件头,那么使用
mail()
函数并没有什么问题。如果您拥有并维护自己的邮件服务器,并且不想使用这些服务可能提供的任何附加功能,那么您可能不需要这些服务,那么它会有一些问题。并非每个人都维护(或希望维护)自己的邮件服务器,有些用例需要额外的功能,开发成本会更高。不受支持的断言(如“有许多缺点”和“更多功能”)没有多大帮助。您提到的产品中的额外功能涉及参数验证、格式设置和与MTA的连接,这些都与原始问题无关。我添加了一些库的优点和mail()函数的缺点。您的缺点都不是专门针对