如果你空間不支持正常郵件發(fā)送功能的(小貓的空間就是如此),需要使用smtp發(fā)送評(píng)論郵件的話,那么你就可以繼續(xù)看下文的教程了。
首先,下載smtpPHP工具,把里面的PHPMailer文件夾丟在你的主題目錄里面。
然后再你 functions.php 文件里面加以下代碼即可,記得修改對(duì)應(yīng)的郵件參數(shù)即可,強(qiáng)烈建議使用163郵箱,因?yàn)槲矣?63發(fā)smtp那么久沒(méi)出過(guò)什么錯(cuò),需要的地方我都有注釋的:
/**
* WordPress 使用 smtp 發(fā)送評(píng)論提醒郵件
* http://www.ydqwiac.cn/wordpress-comment-mail-notify-smtp.html
*/
function comment_mail_notify_editFromClmao($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')) {
$to = trim(get_comment($parent_id)->comment_author_email);
$subject = '您在 [' . get_option("blogname") . '] 的留言有了回應(yīng)';
$message = '
<div style="background-color:#eef2fa; border:1px solid #d8e3e8; color:#111; padding:0 15px; -moz-border-radius:5px; -webkit-border-radius:5px; -khtml-border-radius:5px; border-radius:5px;">
<p>' . trim(get_comment($parent_id)->comment_author) . ', 您好!</p>
<p>您曾在《' . get_the_title($comment->comment_post_ID) . '》的留言:<br />'
. trim(get_comment($parent_id)->comment_content) . '</p>
<p>' . trim($comment->comment_author) . ' 給您的回應(yīng):<br />'
. trim($comment->comment_content) . '<br /></p>
<p>您可以點(diǎn)擊 <a href="' . htmlspecialchars(get_comment_link($parent_id)) . '">查看完整的回應(yīng)內(nèi)容</a></p>
<p>歡迎再度光臨 <a href="' . get_option('home') . '">' . get_option('blogname') . '</a></p>
<p>(此郵件由系統(tǒng)發(fā)出, 請(qǐng)勿回復(fù).)</p>
</div>';
header("content-type:text/html;charset=utf-8");
ini_set("magic_quotes_runtime",0);
require get_template_directory().'/PHPMailer/class.phpmailer.php';
try {
$mail = new PHPMailer(true);
$mail->IsSMTP();
$mail->CharSet='UTF-8';
$mail->SMTPAuth = true;
$mail->Port = 25;
$mail->Host = "smtp.163.com";//郵箱smtp地址,此處以163為例
$mail->Username = "你的郵箱賬號(hào)";//你的郵箱賬號(hào)
$mail->Password = "你的郵箱密碼";//你的郵箱密碼
$mail->From = "你的郵箱賬號(hào)";//你的郵箱賬號(hào)
$mail->FromName = get_option('blogname');
$to = $to;
$mail->AddAddress($to);
$mail->Subject = $subject;
$mail->Body = $message;
$mail->WordWrap = 80;
//$mail->AddAttachment("f:/test.png"); //可以添加附件
$mail->IsHTML(true);
$mail->Send();
} catch (phpmailerException $e) {
// echo "郵件發(fā)送失敗:".$e->errorMessage(); //測(cè)試的時(shí)候可以去掉此行的注釋
}
}
}
add_action('comment_post', 'comment_mail_notify_editFromClmao');
效果圖:

聲明:本站所有文章,如無(wú)特殊說(shuō)明或標(biāo)注,均為本站原創(chuàng)發(fā)布。任何個(gè)人或組織,在未征得本站同意時(shí),禁止復(fù)制、盜用、采集、發(fā)布本站內(nèi)容到任何網(wǎng)站、書籍等各類媒體平臺(tái)。如若本站內(nèi)容侵犯了原著者的合法權(quán)益,可聯(lián)系我們進(jìn)行處理。






QQ郵箱是不是只需要改服務(wù)器地址和端口就好了?為什么我不能用啊……博主求教 ??
研究半天了,,我是萬(wàn)網(wǎng)的空間
萬(wàn)網(wǎng)給了一個(gè)代碼不知道怎么用到網(wǎng)站里
<?
echo send_mail('xxxx@qq.com','發(fā)信測(cè)試','測(cè)試測(cè)試測(cè)試測(cè)試測(cè)試測(cè)試');
function send_mail($to, $subject = 'No subject', $body) {
$loc_host = "test"; //發(fā)信計(jì)算機(jī)名,可隨意
$smtp_acc = "xxx@163.com"; //Smtp認(rèn)證的用戶名,類似fuweng@im286.com,或者fuweng
$smtp_pass="xxx"; //Smtp認(rèn)證的密碼,一般等同pop3密碼
$smtp_host="smtp.163.com"; //SMTP服務(wù)器地址,類似 smtp.tom.com
$from="xxx@163.com"; //發(fā)信人Email地址,你的發(fā)信信箱地址
$headers = "Content-Type: text/plain; charset=\"gb2312\"\r\nContent-Transfer-Encoding: base64";
$lb="\r\n"; //linebreak
$hdr = explode($lb,$headers); //解析后的hdr
if($body) {$bdy = preg_replace("/^\./","..",explode($lb,$body));}//解析后的Body
$smtp = array(
//1、EHLO,期待返回220或者250
array("EHLO ".$loc_host.$lb,"220,250","HELO error: "),
//2、發(fā)送Auth Login,期待返回334
array("AUTH LOGIN".$lb,"334","AUTH error:"),
//3、發(fā)送經(jīng)過(guò)Base64編碼的用戶名,期待返回334
array(base64_encode($smtp_acc).$lb,"334","AUTHENTIFICATION error : "),
//4、發(fā)送經(jīng)過(guò)Base64編碼的密碼,期待返回235
array(base64_encode($smtp_pass).$lb,"235","AUTHENTIFICATION error : "));
//5、發(fā)送Mail From,期待返回250
$smtp[] = array("MAIL FROM: “.$lb,”250”,”MAIL FROM error: “);
//6、發(fā)送Rcpt To。期待返回250
$smtp[] = array(“RCPT TO: “.$lb,”250”,”RCPT TO error: “);
//7、發(fā)送DATA,期待返回354
$smtp[] = array(“DATA”.$lb,”354″,”DATA error: “);
//8.0、發(fā)送From
$smtp[] = array(“From: “.$from.$lb,””,””);
//8.2、發(fā)送To
$smtp[] = array(“To: “.$to.$lb,””,””);
//8.1、發(fā)送標(biāo)題
$smtp[] = array(“Subject: “.$subject.$lb,””,””);
//8.3、發(fā)送其他Header內(nèi)容
foreach($hdr as $h) {$smtp[] = array($h.$lb,””,””);}
//8.4、發(fā)送一個(gè)空行,結(jié)束Header發(fā)送
$smtp[] = array($lb,””,””);
//8.5、發(fā)送信件主體
if($bdy) {foreach($bdy as $b) {$smtp[] = array(base64_encode($b.$lb).$lb,””,””);
//9、發(fā)送“.”表示信件結(jié)束,期待返回250
$smtp[] = array(“.”.$lb,”250″,”DATA(end)error: “);
//10、發(fā)送Quit,退出,期待返回221
$smtp[] = array(“QUIT”.$lb,”221″,”QUIT error: “);
//打開smtp服務(wù)器端口
$fp = @fsockopen($smtp_host, 25);
if (!$fp) echo “Error: Cannot conect to “.$smtp_host.”
“;
while($result = @fgets($fp, 1024)){if(substr($result,3,1) == ” “) { break;
$result_str=””;
//發(fā)送smtp數(shù)組中的命令/數(shù)據(jù)
foreach($smtp as $req){
//發(fā)送信息
@fputs($fp, $req[0]);
//如果需要接收服務(wù)器返回信息,則
if($req[1]){
//接收信息
while($result = @fgets($fp, 1024)){
if(substr($result,3,1) == ” “) { break; }
};
if (!strstr($req[1],substr($result,0,3))){
$result_str.=$req[2].$result.”
“;
}
}
}
//關(guān)閉連接
@fclose($fp);
return $result_str;
}
?>
我按照你的設(shè)置做了一遍,還是不發(fā)送郵件。
為什么我用的xiu主題,加入代碼后,整個(gè)網(wǎng)站都無(wú)法打開
wordpress自帶phpmyadmin鉤子
add_action(‘phpmailer_init’, ‘mail_smtp’);
來(lái)自 亂燉 – 研究web http://levi.cg.am
我想問(wèn)下:PHPMailer 這是干嘛的?為什么我似乎沒(méi)有這些文件,也能發(fā)呢?
這個(gè)不錯(cuò)