Products
GG网络技术分享 2025-03-18 16:13 0
wordpress 的SMTP邮件服务可以帮助我们更好的管理网站,功能包括使用 WordPress 邮件评论回复通知、用户注册邮件通知、以及其他邮件通知功能,这些基本都会使用 SMTP邮件服务,WP自带了mail函数,但用自带mail函数发送邮件很容易失败或者被拒收。所以很多人选择用更方便高效的SMTP来发送邮件。要用SMTP发送邮件,首先需要拥有一个支持SMTP的邮箱(包括Gmail、QQ、126、163等主流邮箱都支持SMTP功能,可能需要到设置中打开),然后在WordPress中简单设置一下。下面介绍的是无插件实现SMTP发送功能,毕竟插件多了对速度有不利的影响。
关联文章导航
【开启wordpress 的SMTP邮件通知服务:WP SMTP插件——墨涩网】
【WordPress纯代码无插件开启SMTP邮件服务——墨涩网】
【解决腾讯云主机无法使用SMTP邮箱——墨涩网】
方法一:
编辑主题文件functions.php文件(wordpress可以在后台“外观”下的“编辑”中找到文件添加,手动修改地址:主机目录/wp-content/themes/主题名/functions.php)添加如下代码。
请修改代码中的邮箱信息为你自己的信息。(如果是QQ邮箱,登录密码填写生成的授权码并不是邮箱登录密码,具体获取方式请参考(开启wordpress 的SMTP邮件通知服务:WP SMTP插件——墨涩网)文章的第1-5步。
//WordPress邮箱SMTP配置开始(www.sunweihu.com)
add_action(\'phpmailer_init\', \'fanly_mail_smtp\');
function fanly_mail_smtp( $phpmailer ) {
$phpmailer->IsSMTP();
$phpmailer->SMTPAuth = true;//启用 SMTPAuth 服务
$phpmailer->FromName = \'墨涩网\'; //发件人名称
$phpmailer->Port =465;//MTP 邮件发送端口,常用的端口为25和465(SSL加密端口)
$phpmailer->SMTPSecure =\"ssl\";//是否验证 ssl,与 MTP 邮件发送端口对应,如果不填写,则上面的端口须为 25
$phpmailer->Host =\"smtp.qq.com\";//邮箱的 SMTP 服务器地址,目前 smtp.exmail.qq.com 为 QQ 邮箱
$phpmailer->Username = \"mosewang@qq.com\";//你的邮箱地址
$phpmailer->Password =\"fgywfgksfjcwbvva\";//你的邮箱登录密码(如果是QQ邮箱填写生成的授权码)
}
add_filter( \'wp_mail_from\', \'fanly_wp_mail_from\' );
function fanly_wp_mail_from() {
return \'mosewang@qq.com\'; //邮箱账户,和上面的邮箱地址一致
}
//WordPress邮箱SMTP配置end(www.sunweihu.com)
方法二:
直接修改WordPress源文件class-phpmailer.php和pluggable.php,这个方法需要对WordPress的2个源文件做小小的修改。好处就是你不需要每次更改主题都修改functions.php,而且更安全。
在WordPress的wp-includes目录下找到pluggable.php和class-phpmailer.php两个文件。
将pluggable.php中的”$phpmailer->IsMail(); “替换为:”$phpmailer->IsSMTP();”
在class-phpmailer.php中修改下面对应的设置:需要找到对应的参数修改即可。
public $Mailer = \'smtp\';
public $Host = \'smtp.gmail.com\'; //邮箱的SMTP服务器地址
public $Port = 465; //SMTP邮件发送端口
public $SMTPSecure = \"ssl\"; //是否验证 ssl或tls
public $SMTPAuth = true; //开启SMTPAuth
public $Username = \'username@gmail.com\'; //你的邮箱地址
public $Password = \'******\'; //你的邮箱登陆密码
注意:此方式并未测试,是否可用请自行测试。
当你回复了用户的评论,或用户之间的相互回复,通过邮件通知该用户,可以促进网站回流,增加用户黏度。
虽然网络上已经有了许多评论回复邮件通知代码,但感觉大多数都太过复杂了,毕竟我们只想要简单的一个通知功能,所以我自己写了一个。
function bzg_comment_mail_notify($comment_id) {$comment = get_comment($comment_id);$parent_id = $comment->comment_parent ? $comment->comment_parent : \\\'\\\';if($parent_id) {$blogname = get_bloginfo( \\\'name\\\' );$adminemail = get_bloginfo(\\\'admin_email\\\');$parent_email = get_comment($parent_id)->comment_author_email;$parent_name = get_comment($parent_id)->comment_author;$mail_title = $parent_name . \\\' 您在\\\' . $blogname . \\\'上的评论有了新回复\\\';$headers[] = \\\'From: \\\' . $blogname . \\\' < \\\' . $adminemail . \\\'>\\\';$headers[] = \\\'Content-Type: text/html; charset=UTF-8\\\';$comment_link = get_comment_link($comment_id, array(\\\'type\\\' => \\\'comment\\\'));$mail_txt = \\\'\\\';$mail_txt .= \\\'<p>\\\' . $parent_name . \\\' 您好!</p>\\\';$mail_txt .= \\\'<p>您曾在《\\\' . get_the_title($comment->comment_post_ID) . \\\'》的评论有了新的回复,您的评论内容为:</p>\\\';$mail_txt .= \\\'<p>\\\' . get_comment($parent_id)->comment_content . \\\'</p>\\\';$mail_txt .= \\\'<p>回复内容为:</p>\\\';$mail_txt .= \\\'<p>\\\' . get_comment($comment_id)->comment_content . \\\'</p>\\\';$mail_txt .= \\\'<p>您可以点击下面的链接查看详细内容:<br />\\\';$mail_txt .= \\\'<a href=\\\"\\\' . $comment_link . \\\'\\\">\\\' . $comment_link . \\\'</a></p>\\\';wp_mail( $parent_name . \\\' <\\\' . $parent_email . \\\'>\\\', $mail_title, $mail_txt, $headers );}}add_action(\\\'comment_post\\\', \\\'bzg_comment_mail_notify\\\');
将以上代码粘贴至主题文件functions.php中即可。
Demand feedback