问题描述
我在一家小胡志明市公司工作,他的唯一服务器只是一台旧的小型电脑。现在几个月后,我们正在快速扩张,新用户的要求之一是要求他们验证他们的电子邮件地址。
在Ubuntu盒子上没有特别的程序,而是我在实际服务器上做的唯一一件事是re-format从Windows XP整个硬盘驱动器上安装了Natty Narwhal,然后安装了Apache和PHPMYADMIN。
我想让PHP在有人申请会员资格时立即向用户和管理员发送电子邮件。但我不知道我需要做什么才能开始。
关于我需要先建立什么的任何想法都会受到谦卑的赞赏;我不是一步一步寻找,只是提示我指向正确的方向。
-Duong Van
最佳解决办法
sudo apt-get install sendmail
将安装一个本地侦听的sendmail副本。如果你安装,那么php可以使用内置的mail()
功能。如果你也这样安装也不会有成为远程中继的风险。
如果您计划将邮件发送到其他Internet域,则需要确保发送邮件的计算机的IP地址也设置了反向DNS条目(PTR记录)。如果您的IP没有PTR记录或者指向通用主机(例如1.2.3.3.domain.isp.com),大多数大型ISP都会拒绝您的邮件。它应该反转到mail.yourdomain.com之类的东西
次佳解决办法
原生mail function是一个很好的内置选项。
mail函数是PHP核心的一部分,但它确实需要在服务器上安装sendmail。
我相信sendmail可能已经安装了您已经选择的软件包,但您可以使用以下命令检查它:
dpkg --get-selections | grep sendmail
如果出现空白,您可以使用以下命令安装sendmail:
sudo apt-get install sendmail
第三种解决办法
sudo apt-get install sendmail
sudo sendmailconfig
我需要第二个命令才能正确运行。 (它询问一些配置,每次询问时都输入Y
)
第四种办法
我建议安装Postfix MTA将e-mails发送出Ubuntu服务器:
aptitude install postfix
并使用PHP Mailer类从PHP发送e-mails:http://phpmailer.worxware.com/
对于”fully featured” e-mail服务,我的食谱是:
Postfix + DKIM-proxy + Dovecot + Roundcube + PHP Mailer + SpamAssassin +正确的DNS设置+ SSL证书以启用加密连接
(我更喜欢NginX作为HTTP服务器……)