我正在尝试从我的服务器页面上的联系表单发送邮件。
我关注了邮政。
我的 PHP 文件 /var/www/my_project/test.php 是这样的:
<?php
$myemail = "[email protected]";
$subject = "my subject";
$message = "my message ";
mail($myemail, $subject, $message);
echo "sent";
?>
如果我从 shell 运行 PHP 文件:
php /var/www/my_project/test.php
我在 Gmail 中收到了这封电子邮件,然后我假设邮件传输协议配置得很好,对吧?
但如果我从浏览器运行 PHP:
http://localhost/my_project/test.php
它不会发送邮件,而是创建包含电子邮件内容的文件:
/var/www/dead.letter
我也执行了以下步骤:
costales@server:~$ sudo cat /etc/php5/apache2/php.ini | grep sendmail
sendmail_path = /usr/sbin/sendmail -t
costales@server:~$ sudo service apache2 reload
costales@server:~$ telnet smtp.gmail.com 587
Trying 173.194.67.109...
Connected to gmail-smtp-msa.l.google.com.
Escape character is '^]'.
220 mx.google.com ESMTP dm2sm7052263wib.8 - gsmtp
有什么想法吗?提前谢谢!
答案1
是 Drupal 吗?那么你可以看看这篇文章:https://drupal.org/comment/2032080#comment-2032080
这可能与用户权限有关。尝试将 apache 用户添加到/etc/mail/virtusertable
并重新哈希/etc/mail/virtusertable.db
Sendmail 需要进行配置才能与 httpd 服务器用户一起工作。