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

 

方法一

還好 wordpress 裡面也已經寫好相關的程式碼,我們只需要修改一下發送 smtp 的參數即可。打開 /wp-includes/class-phpmailer.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 = '******'; //你的郵件登陸密碼

 

然後再開啟 /wp-includes/pluggable.php,將 IsMail() 改成 IsSMTP()。

$phpmailer->IsMail();

改為

$phpmailer->IsSMTP();

 

方法二

修改佈景的 functions.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 ="***** *"; //你的郵件登陸密碼
}