WordPress 如何使用 smtp 发送评论提醒邮件

17、雨 "哗哗…… "地下起来,就像一个庞大的乐队在地上、空中、屋顶上演奏着秋的交响曲!行道树叶——梧桐叶也伴着秋雨在天空中飘荡,像几只飞舞的蝴蝶在天空中嬉戏!终于,它们飘累了,慢慢地落在了湿漉漉的水泥地上。远远的望去,就像是土地上的几朵小花,给寂寞的秋天增添了几分情趣!

如果你空间不支持正常邮件发送功能的(小猫的空间就是如此),需要使用smtp发送评论邮件的话,那么你就可以继续看下文的好代码教程了。

首先,下载smtpPHP工具,把里面的PHPMailer文件夹丢在你的主题目录里面。

然后再你 functions.php 文件里面加以下代码即可,记得修改对应的邮件参数即可,强烈建议使用163邮箱,因为我用163发smtp那么久没出过什么错,需要的地方我都有注释的:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
/**
 * WordPress 使用 smtp 发送评论提醒邮件
 * https://www.wpdaxue.com/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") . '] 的留言有了回应';
		$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) . ' 给您的回应:<br />'
						. trim($comment->comment_content) . '<br /></p>
				<p>您可以点击 <a rel="nofollow noopener noreferrer" href="' . htmlspecialchars(get_comment_link($parent_id)) . '">查看完整的回应内容</a></p>
				<p>欢迎再度光临 <a rel="nofollow noopener noreferrer" href="' . get_option('home') . '">' . get_option('blogname') . '</a></p>
				<p>(此邮件由系统发出, 请勿回复.)</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 = "你的邮箱账号";//你的邮箱账号
			$mail->Password = "你的邮箱密码";//你的邮箱密码
			$mail->From = "你的邮箱账号";//你的邮箱账号
			$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 "邮件发送失败:".$e->errorMessage(); //测试的时候可以去掉此行的注释
		}
	}
}
add_action('comment_post', 'comment_mail_notify_editFromClmao');

/** * WordPress 使用 smtp 发送评论提醒邮件 * https://www.wpdaxue.com/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") . '] 的留言有了回应'; $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) . ' 给您的回应:<br />' . trim($comment->comment_content) . '<br /></p> <p>您可以点击 <a rel="nofollow noopener noreferrer" href="' . htmlspecialchars(get_comment_link($parent_id)) . '">查看完整的回应内容</a></p> <p>欢迎再度光临 <a rel="nofollow noopener noreferrer" href="' . get_option('home') . '">' . get_option('blogname') . '</a></p> <p>(此邮件由系统发出, 请勿回复.)</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 = "你的邮箱账号";//你的邮箱账号 $mail->Password = "你的邮箱密码";//你的邮箱密码 $mail->From = "你的邮箱账号";//你的邮箱账号 $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 "邮件发送失败:".$e->errorMessage(); //测试的时候可以去掉此行的注释 } } } add_action('comment_post', 'comment_mail_notify_editFromClmao');

效果图:

到此这篇关于WordPress 如何使用 smtp 发送评论提醒邮件就介绍到这了。人性最可怜的就是:我们总是梦想着天边的一座奇妙的玫瑰园,而不去欣赏今天就开在我们窗口的玫瑰.更多相关WordPress 如何使用 smtp 发送评论提醒邮件内容请查看相关栏目,小编编辑不易,再次感谢大家的支持!

标签: WordPress