PHP Mail() / PHPMailer vs. 事务性电子邮件服务 vs. SMTP

3
一个常见但相当不可预测的问题是,我的网站客户在发送电子邮件时会被垃圾邮件拦截器拦截。我发现最可靠的解决方案是使用SMTP凭据通过客户端的电子邮件服务器发送电子邮件。然而,如果客户正在使用Office 365,但将其网站托管在Google Cloud / Compute Engine上,那么这种方法就行不通,因为Office 365电子邮件端口被阻止了。那么我只剩下两个选择:交易性电子邮件中继(如Mailgun或Sendgrid)或PHP电子邮件工具(PHPMailer或mail())。
前者非常可靠,但需要客户设置帐户,支付订阅费用并创建新的SPF记录。后者的安装和优缺点对我来说不太清楚,但似乎更容易。PHP开发人员肯定更喜欢mail()而不是PHPMailer,但我从未找到过完整的原因列表(如果您没有使用PHPMailer通过SMTP / IMAP发送邮件)。使用mail()与使用PHPMailer或任何其他PHP电子邮件库有什么利弊呢?
我也从未完全理解使用这些工具所需的设置。如果您正在使用mail() / PHPMailer,是否必须创建SPF记录?如果是这样,您如何找出发送电子邮件的服务器的域名或IP地址,以便您可以创建SPF记录(例如,WP Engine没有关于创建SPF记录的说明)?
2个回答

3
mail和PHPMailer都是创建邮件并将其发送的解决方案。 mail是一个非常低级的裸骨API,用于系统的sendmail或兼容的替代方式 php.ini中配置。使用mail,您必须完全正确地获取邮件格式,基本上是将原始电子邮件头和正文传递给mail(),然后将其传递到系统上设置的任何sendmail兼容 MTA,该系统将根据其配置尝试传递它。
PHPMailer只是简单的包装器,可以帮助您减轻对电子邮件头/正文格式的担忧,并添加直接与SMTP服务器通信的功能,而无需设置本地MTA。
基本上,这两种解决方案对于垃圾邮件并没有任何作用。垃圾邮件过滤器查看发送服务器和域名/ DNS配置(除了邮件内容本身),这两者都不受使用mail /PHPMailer的影响。您仍然需要正确设置MTA /域/ DNS记录,以使最终发送电子邮件的服务器合法化。

0

你最好选择其中一个ESP(Email Service Provider), 这样会更方便。否则,你还需要担心IP地址、黑名单、垃圾邮件陷阱、发送计划等许多其他事情,而一个好的ESP将替你处理这些。

如果你每个月发送的邮件少于150,000封,你仍然可以通过Elastic Email免费完成。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接