因此,由于某种原因,我无法使用mail()PHP函数,也无法使用PHPMailer和SMTP。所以在寻找选项时,我写了一个简短的shell脚本来发送带有附件的电子邮件,如下所示:
#!/bin/bash
echo "Some text $1 $2 $3" | mail -a "/path/to/attached/file.xlsx" -s "Subject text" some@email.com
当我直接从终端运行文件时,它运行正常,并且附件和所有邮件都正确收到。
但是当我尝试从PHP运行时,我有以下代码:
shell_exec("bash /path/to/script $m1t $m2t $afl");
它没有显示任何错误,也没有返回任何输出,但邮件没有发送。
我不能通过PHP调用shell脚本发送电子邮件吗?或者我做错了什么?
感谢有关此事的任何帮助。
答案 0 :(得分:0)
对于红帽企业Linux,CentOS,Fedora和其他Linux发行版,您应该验证是否允许Apache进程访问sendmail
。这可以通过登录服务器(SSH
或打开终端,如果是localhost)并运行
getsebool httpd_can_sendmail
当输出为httpd_can_sendmail --> off
时,您可以通过
sudo setsebool -P httpd_can_sendmail on
-P
- 标志使其成为永久性标志,因此重启后仍然有效。命令可能需要一段时间才能执行。