解決WordPress發送郵件提示“您的主機禁用了Mail函數”

下面由WordPress教程欄目給大家介紹解決wordpress發送郵件提示“您的主機禁用了mail函數”的方法,希望對需要的朋友有所幫助!

解決WordPress發送郵件提示“您的主機禁用了Mail函數”

具體問題情況

  最近在查找主題BUG的時候發現一個很有趣的現象,就是 SMTP 郵箱設置的問題,評論回復是可以是可以不正常發送的,但是卻沒有任何審核的提示,通過郵箱找回出現如下錯誤:

  無法發送電子郵件。

  可能原因:您的主機禁用了mail()函數。

  檢測mail函數是否禁用

  使用PHP探針來檢測主機商是否禁用了mail函數。

  PHP探針代碼如下,保存為php文件上傳到服務器打開就可以測試出來:

?<!--?php if (function_exists(&#39;mail&#39;)) { echo "支持mail()函數!"; } else echo "不支持mail()函數!"; ?-->

  解決方案

  本來以為是衡天主機禁用了mail()函數,但是通過PHP探針發現,并沒有禁用。

  下面提供禁用和支持mail函數都出現mail函數被禁用的解決方案給大家,親身經歷啊,別再有人栽倒這里了。

  主機禁用mail函數解決方案

  通過上面的PHP探針,如果發現主機禁用了mail函數則直接使用SMTP發送郵件來代替原來的mail函數

  在這里送上使用的SMTP郵箱設置代碼(示例為博客郵箱設置),丟進 functions.php 就行了。

 function?mail_smtp(?$phpmailer?){   $phpmailer-&gt;From?=?“lijie@php2.cc”;?//發件人   $phpmailer-&gt;FromName?=?“PHP二次開發”;?//發件人昵稱   $phpmailer-&gt;Host?=?“smtp.ym.163.com”;?//SMTP服務器地址   $phpmailer-&gt;Port?=?25;?//SMTP端口,常用的有25、465、587,具體谷歌百度   $phpmailer-&gt;SMTPSecure?=?“”;?//SMTP加密方式,常用的有SSL/TLS,具體谷歌百度   $phpmailer-&gt;Username?=?“lijie@php2.cc”;?//郵箱帳號   $phpmailer-&gt;Password?=?*;?//郵箱密碼(縉哥哥就用星號代替了)   $phpmailer-&gt;IsSMTP();?//使用SMTP發送   $phpmailer-&gt;SMTPAuth?=?true;?//啟用SMTPAuth服務   }   add_action(‘phpmailer_init’,’mail_smtp’);

  主機支持mail函數解決方案

  如果測試支持mail函數往下看:

  由于之前只有測試管理員的郵箱,后來我試著注冊新用戶,使用郵箱找回密碼的功能,結果郵件正常發送,毫無意外。

  接著,我更換SMTP郵箱賬戶為163郵箱,重新用管理員郵箱找回密碼,結果也是正常接收,毫無意外。

  終于,大徹了,原來收件郵箱和發件郵箱不能相同。這個結果另我很意外,居然是出現在這么小的環節上,弄得我以為是主題問題,更改了好幾次代碼,囧,不過也因此修復了一個重大BUG。折騰啊,年輕不折騰還什么時候折騰。

  不過話說回來,自從更換了163郵箱后,163郵箱里就收到一大堆的審核啊,評論回復啊,注冊啊的郵件提醒,神煩有木有,干脆就單獨弄個管理員郵箱作為發件郵箱,這樣就可以有效減少接收的郵件,這下子耳根子清靜了。

? 版權聲明
THE END
喜歡就支持一下吧
點贊8 分享