更新日期:2020-12-17

一般 php 發信方式都是用 mail() 去做,這個因為沒有驗證發信主機機制,因此常常會被對方誤認為來自亂發的垃圾信,所以也很多虛擬主機上根本不建議再用這個函數發送,取而代之的是填寫 smtp 方式寄信,底下要教的是不用安裝外掛就能透過 google 的 smtp 寄信。

 

方法一

還好 wordpress 裡面也已經寫好相關的程式碼,我們只需要修改一下發送 smtp 的參數即可。打開 /wp-includes/class-phpmailer.php 檔案:
[php]
public $Mailer = ‘smt​​p’;
public $Host = ‘smt​​p.gmail.com’; //郵件的SMTP服務器地址
public $Port = 465; //SMTP郵件發送埠
public $SMTPSecure = "ssl"; //是否驗證ssl或tls
public $SMTPAuth = true; //開啟SMTPAuth
public $Username = ‘username@gmail.com’; //你的gmail郵箱地址
public $Password = ‘******’; //你的郵件登陸密碼
[/php]

 

然後再開啟 /wp-includes/pluggable.php,將 IsMail() 改成 IsSMTP()。
[php]
$phpmailer->IsMail();
[/php]
改為
[php]
$phpmailer->IsSMTP();
[/php]

 

方法二

修改佈景的 functions.php,將下方的方法加入。
[php]
add_action(‘phpmailer_init’, ‘mail_smtp’);
function mail_smtp( $phpmailer ) {
$phpmailer->IsSMTP();
$phpmailer->SMTPAuth = true; // 啟用SMTPAuth服務
$phpmailer->Port = 465; //SMTP郵件發送埠,
$phpmailer->SMTPSecure ="ssl"; //是否驗證ssl或tls
$phpmailer->Host = "smtp.gmail.com"; // 郵件的SMTP服務器地址
$phpmailer->Username = "username@gmail.com"; //你的郵件地址
$phpmailer->Password ="***** *"; //你的郵件登陸密碼
}
[/php]