大多数CMS (例如Joomla)都是默认的php mail(),如果我们愿意的话,可以选择将它更改为SMTP。我将在Debian 7上的同一个VPS中同时设置What服务器和邮件服务器(Postfix)。
背景:我的机器将是一个简单的web服务器,它只用于发送来自Joomla的电子邮件、通讯和来自各种服务的根电子邮件。
发布于 2014-12-04 13:57:17
传递声誉:使用php mail() vs SMTP会对传递率产生任何影响吗?据我所知,Postfix在发送电子邮件时将使用SMTP协议与互联网上的其他服务器进行通信,因此,假设邮件是通过php邮件或从本地主机smpt发送到postfix并不重要吗?这两种方法中的任何一种都会影响电子邮件的声誉,甚至是很小的影响吗?
没有任何亲戚。Postfix可以通过mail()和SMTP接收电子邮件。处理后,后缀将通过SMTP发送。
性能负载:当发送电子邮件时,php邮件和SMTP之间是否存在性能差异?比如说,如果我发送的邮件多达1万封,那么哪一种方法会占用最多的资源(或时间)?我的假设是,两者都可能需要一些时间,比如: php邮件,用于编译带有标题的电子邮件,等等。以及每次建立连接的SMTP。哪个服务器资源消耗最多?
测试一下!我没有这方面的任何数据。
在mail()命令中,PHP调用sendmail命令,程序将电子邮件放在maildrop目录中的一个文件中。拾取守护进程扫描该目录,并将电子邮件移动到清除守护进程。
在SMTP 1中,PHP通过SMTPd创建与后缀服务器的连接。在完成SMTP仪式之后,SMTPd将检查电子邮件是否允许。如果允许使用电子邮件,它会将其传递给清理守护进程。
来源:后缀的正式文件
安全问题:当我搜索两者之间的区别时,许多网站都提到了php邮件的安全性问题,因为黑客可以上传php脚本发送垃圾邮件。但是我也可以看到SMTP的另一个安全问题,因为SMTP用户名和密码都存储在配置文件中,这两者都不安全。既然这两种方法都存在安全问题,那么在任何方面,一种方法是否比另一种方法更重要?
正如@Tutul在另一个答复中所说的,您可能希望一些垃圾邮件脚本使用mail()发送垃圾邮件。是的,这是在php中阻止邮件命令的考虑因素之一。
但是,有一个原则是:一旦有人成功地将脚本放置到您的web和邮件服务器中,他就可以通过mail()和SMTP发送PHP的使用能力。
在php本身中,没有限制垃圾邮件可以调用多少SMTP连接或mail()的保护。放置防线的地方之一是MTA (后缀)。不幸的是,您无法控制从mail()命令调用的传入邮件。但是,您可以限制通过SMTP连接可以发出多少发送请求。政策%d或博士后可以帮助后缀控制它。
注:以上解释是关于当收到电子邮件时的节流过程。当然,你可以在发送电子邮件时节流。例如,您将每分钟20封电子邮件限制为@gmail.com,以避免GMAIL黑名单守护进程阻塞您。请参阅有关后缀性能调整的文档
IMHO,我喜欢通过SMTP发送电子邮件。您可以使用MTA作为防止垃圾邮件爆发的附加保护。您可能必须在PHP中处理另一个邮件队列,就像@Sanmain在另一个答复中说的那样:)
发布于 2014-10-25 15:21:00
你是对的,这对其他人来说并不重要,但对你来说肯定很重要,因为当你提交SMTP邮件时,Postfix可能会因为你无法控制的原因而拒绝接受您的消息。这意味着您必须使用自己的传递队列,并添加其他膨胀代码。事实上,你将做后缀的工作。
有些人可能会说mail()也可能失败,但它本身的工作原理就像将消息写入文件一样简单。换句话说,没有什么可以打破的。
底线:除非您绝对需要使用SMTP,否则请使用系统的邮件程序。
发布于 2014-12-02 20:39:38
在许多情况下,垃圾邮件脚本是在自动扫描程序发现webapp应用程序中的漏洞后,通过自动过程上传的。那些垃圾邮件脚本几乎总是使用php mail()函数,而不是SMTP。如果有人侵入您的服务器并从配置文件中获取smtp密码,那么无论如何您已经失去了城堡。但是在许多对过时的CMSs的自动攻击中,垃圾邮件脚本只是使用mail()。因此,我建议您在后缀中禁用mail(),并专门使用经过身份验证的SMTP。
https://serverfault.com/questions/639622
复制相似问题