簡體   English   中英

通過從PHP運行Shell腳本來發送郵件

[英]Sending a mail by running a shell script from php

因此,出於某種原因,我不能使用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");

它不顯示任何錯誤,也不返回任何輸出,但是郵件沒有發送。

我不能讓Shell腳本通過PHP調用來發送電子郵件嗎? 還是我做錯了什么?

感謝對此事的任何幫助。

對於Red Hat Enterprise Linux,CentOS,Fedora和其他Linux發行版以及SELinux,您應該驗證是否允許Apache進程訪問sendmail 可以通過登錄服務器( SSH或在本地主機上打開終端)並運行來完成

getsebool httpd_can_sendmail

當輸出為httpd_can_sendmail --> off ,可以通過以下方式啟用它

sudo setsebool -P httpd_can_sendmail on

-P -flag使其變為永久性,因此重新引導后仍可使用。 命令可能需要一段時間才能執行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM