我在互联网上找到了一个php脚本:
<?php
$to = "*******@yahoo.com";
$subject = "Test mail";
$message = "Hello! This is a simple email message.";
$from = "****@*****.nu";
$headers = "From:" . $from;
mail($to,$subject,$message,$headers);
echo "Mail Sent.";
?>
如果我从网上酒店使用它,它的效果非常好。但我需要通过在我的家庭服务器上运行,我只是没有收到任何东西。我试图用php -f phpTest
和本地ip(10.0.0.2)以及使用全局主机名运行它。我收到“邮件发送”而没有收到邮件。
这是我运行的ubuntu服务器,它使用apache2。就像我说的那样,脚本没有错,因为它适用于web-hotel。它应该是我的本地设置,但我无法弄清楚是什么。
所有帮助将不胜感激!
\\恶魔
答案 0 :(得分:1)
PHP mail
函数使用本地MTA(邮件传输代理),即与PHP解释器和Apache Web服务器在同一台计算机上运行的邮件守护程序。
因此,您必须在Ubuntu设置上安装和配置一个。 sendmail
是经典版本,但据说exim
可以轻松配置,并且可以将您当前的SMTP服务器用作智能主机中继,适用于家庭服务器。
sudo apt-get install exim4-daemon-light
sudo dpkg-reconfigure exim4-config
答案 1 :(得分:1)
您可以使用Swiftmailer之类的库来发送邮件through an existing SMTP server(例如您的常规邮件地址),而不是依赖需要有效MTA的内置mail
功能。这样你就可以获得更少垃圾邮件过滤的额外奖励(因为垃圾邮件过滤器有时会非常怀疑从家庭服务器发送的邮件)。