WordPress增加評論回覆的郵件通知功能

安全劍客發表於2019-04-04

評論回覆郵件通知功能的好處自不必說。但是針對不支援mail函式的主機來說還是比較麻煩。在網上搜教程的時候,幾乎全部都在說需要修改include中class-smtp.php的程式碼,然而在我開啟class-smtp.php的時候,發現程式碼位置和結構都已經和教程中所展示的不一樣了。仔細研究了一下才發現,原來最新版的WordPress已經已經對fsockopen做了相容。也就是說,在新版本的WordPress已經不需要再修改class-smtp.php中的任何程式碼了。配置方法非常簡單,下面以目前的最新版本4.4.2為例。

第一步:開啟fsockopen函式

登入服務商主機後臺,找到PHP環境相關設定介面,將fsockopen函式設定為開啟。沒有找到的請自行諮詢客服。

第二步:安裝smtp外掛

我使用的是WP SMTP這款外掛,配置比較簡單。下面是外掛配置項說明:

  • 發件人地址 -> 你用來傳送郵件的郵箱地址
  • 發件人暱稱 -> 用於顯示發件人
  • SMTP伺服器地址 -> 可以到郵箱的客戶端設定中找到(例如126郵箱:smtp.126.com)
  • SMTP加密方式 -> 根據郵箱自行設定
  • SMTP埠 -> 同上,一般ssl埠號為465;普通埠25
  • SMTP認證 -> YES
  • 認證使用者名稱 -> 郵箱地址
  • 認證密碼 -> 郵箱登入密碼

設定完畢,可以填寫一個郵箱地址進行測試,如果測試成功,那麼繼續下一步。

第三步:新增郵件內容

直接上程式碼,貼上至主題資料夾function.php內。html標籤內的樣式程式碼可以根據自己的需要進行修改。

function comment_mail_notify($comment_id) {
$comment = get_comment($comment_id);
$parent_id = $comment->comment_parent ? $comment->comment_parent : '';
$spam_confirmed = $comment->comment_approved;
if (($parent_id != '') && ($spam_confirmed != 'spam')) {
$wp_email = 'beyond0420@126.com' . preg_replace('#^($_SERVER['SERVER_NAME'])); //e-mail 發出點, no-reply 可改為可用的 e-mail.
$to = trim(get_comment($parent_id)->comment_author_email);
$subject = '[' . get_option("blogname") . '] 您的留言有了新回覆';
$message = '
<div style="width: 60%;margin: 0 auto">
<div style="font-size: 28px;line-height: 28px;text-align: center;"><p>' . trim(get_comment($parent_id)->comment_author) . ', 您好!</p></div>
<div style="border-bottom: 1px solid #eee;padding-top: 10px;">
<p style="color: #999;">您曾在《' . get_the_title($comment->comment_post_ID) . '》的留言:</p>
<p style="font-size: 18px;">' . trim(get_comment($parent_id)->comment_content) . '</p>
</div>
<div style="border-bottom: 1px solid #eee;padding-top: 10px;">
<p style="color: #999;">' . trim($comment->comment_author) . ' 給您的回覆:</p>
<p style="font-size: 18px;">' . trim($comment->comment_content) . '</p>
<p style="text-align: center;font-size: 12px;padding-bottom: 20px;"><a style="border: 1px solid #3297fb;color: #3297fb;padding: 7px 14px;text-decoration: none;-moz-border-radius: 4px;-webkit-border-radius: 4px;border-radius:4px;" href="' . esc_attr(get_comment_link($parent_id, array('type' => 'comment'))) . '">點選檢視</a></p>
</div> <div style="font-size: 12px;color: #999;text-align: center;">
<p>此郵件由系統自動傳送,請勿回覆</p>
<p>© <a href="('blogname') . '</a></p>
</div>
</div>';
$from = "From: \"" . get_option('blogname') . "\" <$wp_email>";
$headers = "$from\nContent-Type: text/html; charset=" . get_option('blog_charset') . "\n"; wp_mail( $to, $subject, $message, $headers ); } }
add_action('comment_post', 'comment_mail_notify');


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31559985/viewspace-2640349/,如需轉載,請註明出處,否則將追究法律責任。

相關文章