设置一个Ubuntu/Apache/PHP机器发送电子邮件


Setting up a Ubuntu/Apache/PHP machine to send email

我在胡志明市的一家小公司工作,这家公司唯一的服务器就是一台旧的小电脑。现在仅仅几个月过去了,我们正在迅速扩张,对新用户的要求之一是要求他们验证他们的电子邮件地址。

在Ubuntu盒子上没有特殊的程序,相反,我在实际服务器上做的唯一一件事就是从windows XP重新格式化整个硬盘,并在上面安装Natty Narwhal,然后安装Apache和PHPMYADMIN。

我希望PHP在有人申请会员资格时立即向用户和管理员发送电子邮件。但我不知道该怎么开始。

任何关于我需要首先设置的想法将不胜感激;我不需要循序渐进,只需要一些指引我正确方向的建议。

duong Van

sudo apt-get install sendmail将安装一个本地侦听的sendmail副本。如果你安装了它,那么php可以使用内置的mail()函数。如果你像这样安装,也不会有成为远程中继的风险。

如果您计划将邮件发送到其他互联网域,则需要确保发送邮件的机器的IP地址也设置了反向DNS条目(PTR记录)。如果你的IP没有PTR记录或指向一个通用主机(例如1.2.3.3.domain.isp.com),大多数大型ISP将拒绝你的邮件。它应该变成mail.yourdomain.com

本机邮件功能是一个很好的内置选项。

邮件功能是PHP核心的一部分,但是它需要在服务器上安装sendmail。

我相信sendmail可能已经和你选择的包一起安装了,但是你可以使用命令检查它:

dpkg --get-selections | grep sendmail

如果显示为空,您可以安装sendmail:

sudo apt-get install sendmail
sudo apt-get install sendmail
sudo sendmailconfig

我需要第二个命令才能正确运行。(它询问一些配置,每次询问时只需输入Y)

我建议安装Postfix MTA来向Ubuntu服务器发送电子邮件:

aptitude install postfix

和使用PHP Mailer类从PHP发送电子邮件:http://phpmailer.worxware.com/


对于"功能齐全"的电子邮件服务,我的建议是:

Postfix + DKIM-proxy + Dovecot + Roundcube + PHP Mailer + SpamAssassin +正确的DNS设置+ SSL证书以启用加密连接

(我更喜欢NginX作为HTTP服务器…)

sendmail可以解决这个问题。您可以配置sendmail使用您的常规电子邮件smtp帐户,详细信息如下:http://developernote.com/2012/07/how-i-configured-sendmail-for-php-on-ubuntu-server-12-04/特别是gmail:http://linuxconfig.org/configuring-gmail-as-sendmail-email-relaysendmail配置文件中有一个bug,你可以在这里读到:http://linux.koolsolutions.com/2010/10/14/tip-fixing-sendmail-configuration-error/