设置ubuntu服务器以发送mail()


40

我尝试了很多搜索,但无法找到如何实际设置ubuntu服务器的方法,因此我可以使用php中的mail()函数通过php发送邮件。

我的服务器上安装了apache2,mysql和php5。

谢谢。

Answers:


45

我也同意,对于只需要脚本发送(例如错误电子邮件)并且不需要功能完善的邮件服务器的人来说,缺少教程。

首先,如果尚未安装postfix,请执行以下操作:

sudo apt-get install postfix

它提示了几个问题。首先,我选择“ Internet站点”。对于位于防火墙后面的计算机,我可能会选择smarthost。对于第二个问题,它默认为计算机名称。我附加了一个我控制的域名(以便以后可以为我设置DNS)。

此时,您应该可以从命令行使用“邮件”发送测试。(我通常通常先按照http://ubuntuforums.org/showthread.php?t=38429上的说明进行操作,否则我必须使用-f标记/usr/bin/sendmail。我也想/etc/aliases为root和普通用户创建条目,然后运行newaliases

然后在/etc/php5/conf.d下创建一个包含以下内容的文件(例如mailconfig.ini):

sendmail_from = "me@example.com"
sendmail_path = "/usr/sbin/sendmail -t -i -f me@example.com"

将me@example.com更改为您的电子邮件地址。它们意味着所有电子邮件看起来都像是您发送的,这有助于防止电子邮件被拒绝。仅向开发人员发送错误电子邮件就足够了。

(以上说明已在Ubuntu 10.04、11.04、11.10、12.04上进行了测试)

PS正如评论中的喧闹所指出的那样,mail并不总是存在(例如,在Ubuntu 11.10上丢失)。这实际上并不会影响上述说明,您只需要mail进行测试,就可以使用sendmail它。但是mail对于阅读电子邮件也很有用,因此通常值得安装:(apt-get install mailutils作为根用户)。


1
谢谢!这工作得很好。在Ubuntu 12.04 LTS x64上测试。
特伦特·斯科特

这也解决了使用NGINX的查找问题!和PHP5-FPM
TheBlackBenzKid 2012年

1
请注意,在我的主机上,mail干净的Ubuntu安装中未安装命令行实用程序,而安装PostFix不会安装它。尝试sudo apt-get install mailutils得到mail命令,或使用替代品,如笨蛋,或者ssmtp
razzed

我需要几周的时间才能弄清楚背后的东西sendmail_path必须"能够正常工作,例如sendmail_path = "/usr/sbin/sendmail -t -i -f me@example.com"
Sliq

1
最后!简单直接的解决方案。适用于Ubuntu 14.04。
Knyri 2014年


1

通过痛苦的过程直接在服务器上设置邮件服务器(后缀等),或者使用允许您直接连接到smtp服务器的库。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.