WP Mail SMTP 是一款非常優秀的解決WordPress主機因為不支持或者是禁用了mail()函數,導致無法實現在線郵件收發功能的插件,WPYOU之前在“WP Mail SMTP插件解決WordPress郵件收發失敗問題”一文中介紹過WP Mail SMTP插件相關的使用。這里在詳細介紹下有關“WP Mail SMTP插件來解決Contact Form 7表單提交失敗問題”的具體方法。
本文以阿里云服務器和QQ郵箱的SMTP為例。
其中的,1處的 From Email 和 2處填寫的QQ郵箱需要一致,為同一郵箱,我們測試過非同一郵箱始終錯誤的。
當然你也可以把1處的留空,默認使用WordPress的【 設置 – 電子郵件地址 】中填寫的郵箱,那么下面的2處,就要設置使用同樣的郵箱才可以。
在 Send a Test Email 里填寫一個和上面設置的郵箱不同的其他郵件地址,Send Test 一下如果上面的反饋顯示如下,則說明配置成功。
Test Message Sent
The result was:
bool(true)2. 配置Contact Form 7表單插件
設置好WP Mail SMTP插件后,再進入Contact Form 7表單插件里創建好的表單中
如上圖,“發件人”中默認設置的是“[your-name]<[your-mail]>”,把里面的 [your-mail] 改為 WP Mail SMTP插件中1處設置的[From Email]。例如,本例既是把 [your-name]<[your-mail]> 改為 [your-name]<[wpyou@qq.com]>。
正常情況下,這樣設置之后,在前臺添加 Contact Form 7 表單的頁面提交就會成功了。
——————————更多原因排除解決方法————————————
1. 第一步:進入主機管理里,找到 主機環境設置 里的 php.ini參數設置,檢查里面的 PHP函數fsockopen設置 是否開啟,如沒有開啟需要啟用該項勃起后很快變軟是怎么回事呢
如果第一步完成后還是無法發送,則進行第二步:在網站文件管理中,找到 /wp-include/class-smtpp.php 大概在202-208 行的位置的代碼(通過查找如下):
$socket_context = stream_context_create($options); $this->smtp_conn = @stream_socket_client( $host . ":" . $port, $errno, $errstr, $timeout, STREAM_CLIENT_CONNECT, $socket_context );修改為如下代碼:
$this->smtp_conn = @fsockopen($host,$port,$errno,$errstr,$timeout);2. 如果還顯示 “你的留言發送失敗。請稍后再嘗試發送或者使用其他方法聯系管理員。”,那么請往下看,通過網站的FTP訪問 Contact Form 7 插件文件夾(/wp-content/plugins/contact-form-7),打開/contact-form-7/includes/mail.php 文件(老版本的插件在/contact-form-7/includes/classes.php文件),找到下面的代碼
$headers = "From: $sendern";修改為
$headers = "From $sendern";保存更新即可,這樣在前臺添加 Contact Form 7 表單的頁面提交就會成功了。
新聞熱點
疑難解答
圖片精選