php mail()函数在本地开发机器上很慢

背景:如果您为开发目的设置了本地apache服务器,则可能遇到sendmail需要很长时间(至少一分钟)才能发送电子邮件的问题.如果您尝试使用生成的电子邮件调试问题,这将非常令人沮丧.

互联网上有几个论坛帖子讨论了这个问题.但是,没有一个主题描述了我的有限知识应该做些什么.以下是适合我的步骤:

1)使用此命令找到您的主机名(如果您忘记了它):

:$cat / hosts / hostname

MYHOSTNAME

2)编辑文件/ etc / hosts并确保第一行是以下内容:

127.0.0.1 localhost.localdomain localhost myhostname

3)编辑sendmail配置文件(Ubuntu中的/etc/mail/sendmail.cf)和
取消注释#O HostsFile = / etc / hosts行

4)重新启动计算机.计算机现在启动速度要快得多,而且mail()函数应该立即返回.但是,除非您按照步骤5执行,否则实际上不会发送电子邮件.

5)每当使用邮件功能时,您必须新使用sendmail’-f’选项.例如:

mail(‘recipient@somewhere.com’,’主题’,’消息’,null,’ – fsender @ somewhere.com’);

我对其他服务器用户的问题是:

可以进行哪些进一步的更改,以便我不必使用sendmail -f选项?虽然添加-f选项并不是很难,但是当您的CMS(例如Drupal)在发送邮件时不使用-f选项时会出现问题.您需要破解核心模块才能添加此选项.

嗯,我知道这不是你要问的,但为什么你不尝试Postfix或Exim?它们都可用于ubuntu(Postfix甚至是Ubuntu系统上的默认mta),它们都提供兼容的“sendmail”命令,效果非常好.恕我直言sendmail有点过时了,你会有更好的机会获得更现代的MTA支持.

dawei

【声明】:唐山站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。