背景:如果您出于开发目的而设置了本地apache服务器,则可能会遇到问题,即sendmail需要很长时间(至少一分钟)发送电子邮件。如果您尝试调试所生成的电子邮件的问题,这将非常令人沮丧。
互联网上有几个论坛帖子都在讨论这个问题。但是,由于我的知识有限,没有一个主题足够详细地描述如何做。以下是对我有用的步骤:
1)使用以下命令找到您的主机名(以防万一您忘记了它):
:~$ cat /hosts/hostname
myhostname
2)编辑文件/etc/hosts
,并确保第一行如下:
127.0.0.1 localhost.localdomain localhost myhostname
3)编辑sendmail配置文件(/etc/mail/sendmail.cf
在Ubuntu中)并取消注释该行#O HostsFile=/etc/hosts
4)重新启动计算机。现在计算机应该启动得更快,并且mail()函数应该几乎立即返回。但是,除非您按照步骤5进行操作,否则实际上不会发送电子邮件。
5)每当使用邮件功能时,您都必须重新使用sendmail的-f选项。例如:
mail('recipient@somewhere.com', 'the subject', 'the message', null, '-fsender@somewhere.com');
我对服务器故障同行的问题是:
可以进行哪些进一步的更改,使我不必使用sendmail -f选项?尽管添加-f选项不是很困难,但是当您的CMS(例如Drupal)在发送邮件时不使用-f选项时,这是一个问题。您可能需要破解一个核心模块才能添加此选项。
cat /etc/hostname