大多数CMS(例如Joomla)默认带有PHP mail(),如果需要,可以选择将其更改为SMTP.我将在Debian 7上的相同VPS中设置网络服务器和邮件服务器(Postfix).我想要了解的是:

>交货信誉:使用PHP mail()vs SMTP会对交付率产生任何影响吗?根据我的理解,Postfix在发送电子邮件时与互联网上的其他服务器进行通信时会使用SMTP协议,因此可以安全地假设电子邮件是通过PHP邮件发送到postfix或者从localhost发送的. ?这两种方法中的任何一种都会以任何方式影响电子邮件声誉吗?
>性能负载:发送电子邮件时,PHP邮件和SMTP之间是否存在性能差异?比方说,如果我发送10,000个电子邮件,哪种方法需要最多的资源(或时间)?我的假设是,两者都可以花费一些时间,例如:PHP邮件用于编译带有标题的电子邮件等等.和SMTP用于每次建立连接.哪一个消耗最多的服务器资源?
>安全问题:当我搜索两者之间的差异时,许多网站都说有关于PHP邮件的安全问题,因为黑客可以上传PHP脚本来发送垃圾邮件.但我也可以看到SMTP的另一个安全问题,因为SMTP用户名和密码都存储在配置文件中的文本中,这也不安全.既然这两种方法都存在安全问题,那么在任何方面都会比其他方法更好吗?
>偏好:如果我能够在我的服务器上设置PHPmail和SMTP,我是否应该优先使用一个而不是出于任何原因?我的意思是,如果我可以在我的服务器中使用SMTP,那么我是否应该尝试使用SMTP而不是PHPmail,原因有以上几点所涵盖的各种原因?

背景:我的机器将是一个简单的Web服务器,它使用postfix仅用于发送来自Joomla的电子邮件,新闻简报和各种服务的根电子邮件.

Delivery Reputation: Would using PHP mail() vs SMTP make any difference with the delivery rate? From what I understand,Postfix is going to be using SMTP protocol when communicating with other servers on the internet when delivering emails,so therefore is it safe to assume that it doesnt matter if the email was sent to postfix via PHP mail or smpt from localhost? Does any of these 2 methods affect the email reputation is any ways even in a small way?

没有关系. Postfix可以通过mail()和SMTP接收电子邮件.处理后,postfix将通过SMTP发送.

Performance Load: Is there any performance difference between PHP mail and SMTP when sending emails? Say,if I am sending like 10,000 emails,which method would take the most resources (or time)? My assumption is that both can take a bit of time like: PHP mail for compiling the emails with headers,etc.. and SMTP for making connections each time. Which one consumes the most server resources?

基准吧!我没有这方面的任何数据.

这里涉及mail()和SMTP的过程是什么?

在mail()命令中,PHP调用sendmail命令,程序将您的电子邮件放在maildrop队列目录中的文件中. Pickup守护程序扫描该目录,并将电子邮件移动到清理守护程序.

在SMTP中,PHP通过SMTPd创建与后缀服务器的连接.完成SMTP仪式后,SMTPd将检查电子邮件是否允许.如果允许电子邮件,它会将其传递给清理守护程序.

资料来源:official documentation of postfix

Security Issue: When I searched for the difference between the two,many sites says about the security issue with PHP mail since a hacker can upload PHP script to send out spams. But I can also see another security issue with SMTP as well since the SMTP username and passwords are stored in configuration file in text which is not secure neither. Since there are security issues for both methods,does one weigh better than the other in any aspects?

正如@Tutul在另一个回答中所说,你可能希望一些垃圾邮件脚本使用mail()发送垃圾邮件.是的,这是在PHP中阻止邮件命令的考虑因素之一.

但是,有一个原则是:一旦某人成功将脚本放入您的Web和邮件服务器,他就可以发送PHP的使用能力,通过mail()和SMTP发送电子邮件.

在PHP本身,没有保护限制垃圾邮件发送者可以调用多少SMTP连接或mail().放置防线的一个地方是MTA(后缀).不幸的是,您无法限制从mail()命令调用的传入邮件.但是,您可以限制从SMTP连接发出的发送请求数. Policyd或postfwd可以帮助postfix节流它.

注意:以上说明是关于接收电子邮件时的限制流程.当然,你可以在发送电子邮件时加油.例如,您每分钟限制20封电子邮件到@ gmail.com以避免GMAIL黑名单守护程序阻止您.请参阅有关Postfix Performance Tuning的文档

最后的说明

恕我直言,我更喜欢通过SMTP发送电子邮件.您可以使用MTA作为防止垃圾邮件爆发的额外保护.您可能必须在PHP中处理另一个邮件队列,因为@Sanmain在另一个答案中说:)

Postfix Php Mail()VS Postfix SMTP的更多相关文章

  1. Xcode 4 / iOS – 使用SMTP从我的应用程序发送电子邮件

    我一直在寻找一个框架,只需让我从我的应用程序内发送一封电子邮件.我已经尝试过MailCore,Pantomime和SKPSMTP,没有运气.我不能让他们在Xcode中编译,所以我推测他们已经过时了.有什么办法可以做到吗?谢谢.解决方法您可以轻松地从iOS设备发送电子邮件.不需要实现SMTP和所有.在iOS中使用内置电子邮件功能的最佳方法是让您访问通讯录!为了完整起见,如果用户按取消或发送,我必须写这个选择器来关闭电子邮件窗口–快乐编码…

  2. 尝试使用swift mailer,gmail smtp,php发送邮件

    这里是我的代码:在运行时出现此错误…

  3. 如何在android中设置多个SMTP服务器?

    我的问题是如何设置多个SMTP服务器在Android中发送邮件,如:雅虎,hotmail,gmail,rediff任何类型的域名将在发送邮件时起作用.任何人都可以建议任何网站或任何想法吗?请帮帮我,谢谢你.解决方法以下是GMail,Yahoo!的测试设置.和Hotmail.使用适用于Android的JavaxMail端口进行测试.

  4. php使用pear_smtp发送邮件

    这篇文章主要介绍了php使用pear_smtp发送邮件的相关资料,内容很丰富,感兴趣的小伙伴们可以参考一下

  5. Laravel框架实现的使用smtp发送邮件功能示例

    这篇文章主要介绍了Laravel框架实现的使用smtp发送邮件功能,结合实例形式分析了Laravel框架相关配置及邮件发送操作技巧,需要的朋友可以参考下

  6. PHP实现SMTP邮件的发送实例

    在本篇文章中我们给大家详细分享了PHP实现SMTP邮件的发送的相关实例内容,有兴趣的朋友们可以学习下。

  7. php smtp实现发送邮件功能

    这篇文章主要为大家详细介绍了php smtp实现发送邮件功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  8. php通过smtp邮件验证登陆的方法

    这篇文章主要介绍了php通过smtp邮件验证登陆的方法,涉及php通过socket针对SMTP邮件服务器进行连接、读写、验证等相关操作技巧,需要的朋友可以参考下

  9. PHP使用SMTP邮件服务器发送邮件示例

    这篇文章主要介绍了PHP使用SMTP邮件服务器发送邮件,结合实例形式分析了php基于SMTP协议的邮件发送类email.class.php定义与使用技巧,需要的朋友可以参考下

  10. 谷歌Gmail邮箱开启SMTP/IMAP服务流程

    本篇专门定向讲解谷歌Gmail邮箱,如何开通SMTP协议的流程,在讲篇幅前,我需要你确定3件事: 1.你已经有谷歌账号了 2.你很清楚自己为什么想要开通SMTP服务 3.你已经掌握一定的基础知识,能够

随机推荐

  1. PHP个人网站架设连环讲(一)

    先下一个OmnihttpdProffesinalV2.06,装上就有PHP4beta3可以用了。PHP4给我们带来一个简单的方法,就是使用SESSION(会话)级变量。但是如果不是PHP4又该怎么办?我们可以假设某人在15分钟以内对你的网页的请求都不属于一个新的人次,这样你可以做个计数的过程存在INC里,在每一个页面引用,访客第一次进入时将访问时间送到cookie里。以后每个页面被访问时都检查cookie上次访问时间值。

  2. PHP函数学习之PHP函数点评

    PHP函数使用说明,应用举例,精简点评,希望对您学习php有所帮助

  3. ecshop2.7.3 在php5.4下的各种错误问题处理

    将方法内的函数,分拆为2个部分。这个和gd库没有一点关系,是ecshop程序的问题。会出现这种问题,不外乎就是当前会员的session或者程序对cookie的处理存在漏洞。进过本地测试,includes\modules\integrates\ecshop.php这个整合自身会员的类中没有重写integrate.php中的check_cookie()方法导致,验证cookie时返回的username为空,丢失了登录状态,在ecshop.php中重写了此方法就可以了。把他加到ecshop.php的最后面去就可

  4. NT IIS下用ODBC连接数据库

    $connection=intodbc_connect建立数据库连接,$query_string="查询记录的条件"如:$query_string="select*fromtable"用$cur=intodbc_exec检索数据库,将记录集放入$cur变量中。再用while{$var1=odbc_result;$var2=odbc_result;...}读取odbc_exec()返回的数据集$cur。最后是odbc_close关闭数据库的连接。odbc_result()函数是取当前记录的指定字段值。

  5. PHP使用JpGraph绘制折线图操作示例【附源码下载】

    这篇文章主要介绍了PHP使用JpGraph绘制折线图操作,结合实例形式分析了php使用JpGraph的相关操作技巧与注意事项,并附带源码供读者下载参考,需要的朋友可以参考下

  6. zen_cart实现支付前生成订单的方法

    这篇文章主要介绍了zen_cart实现支付前生成订单的方法,结合实例形式详细分析了zen_cart支付前生成订单的具体步骤与相关实现技巧,需要的朋友可以参考下

  7. Thinkphp5框架实现获取数据库数据到视图的方法

    这篇文章主要介绍了Thinkphp5框架实现获取数据库数据到视图的方法,涉及thinkPHP5数据库配置、读取、模型操作及视图调用相关操作技巧,需要的朋友可以参考下

  8. PHP+jquery+CSS制作头像登录窗(仿QQ登陆)

    本篇文章介绍了PHP结合jQ和CSS制作头像登录窗(仿QQ登陆),实现了类似QQ的登陆界面,很有参考价值,有需要的朋友可以了解一下。

  9. 基于win2003虚拟机中apache服务器的访问

    下面小编就为大家带来一篇基于win2003虚拟机中apache服务器的访问。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  10. Yii2中组件的注册与创建方法

    这篇文章主要介绍了Yii2之组件的注册与创建的实现方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下

返回
顶部