我正在试验 PHP,但遇到了一个问题。我试图让我的 php 脚本在进程完成时发送电子邮件。
<!DOCTYPE html>
<html>
<body>
<?php
echo shell_exec('echo "testing" | mutt -x -F /usr/web/mail.mut -s test -- my_email_here@gmail.com');
?>
<br>
Thanks. PDF copys of energy plots have been emailed.
</body>
</html>
结果是在页面上显示“Could not send message”的回显。
然而,当我登录到主机时,我可以发出完全相同的命令并且消息通过。
一些补充信息。主机是 Linux Mint 虚拟机。 MTA 是后缀。当以我的用户(而不是 PHP 用户)身份登录主机时,mutt 在终端上完美运行。我已经检查了指定的 mutt 配置文件的文件权限,应该没问题。 mutt 配置文件 (/usr/web/mail.mut) 只有我的 gmail 帐户信息。同样,当我执行相同的命令时,消息会通过。我也尝试查看/var/log/syslog 但没有条目。
感谢任何建议。
编辑:
根据 michal 的评论。我也尝试了以下相同的结果。
echo shell_exec('mutt -F /usr/web/mail.mut -s testing -- myemailhere@gmail.com < message');
最佳答案
没有解决问题,但找到了一个更好的解决方案来解决我正在尝试做的事情。
最终将 PHPMailer 与 ssmtp 结合使用(postfix 可以工作,但 ssmtp 非常容易设置)。
关于PHP 用户无法通过 Mutt 发送电子邮件,但普通用户可以,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30188268/