2014年1月1日

wordpress无插件实现邮件发送功能解决方案


切图网(qietu.com)讯:在使用WordPress的过程中,不可避免地要 用到邮件功能。WP自带了mail函数,但用自带mail函数发送邮件很容易失败或者被拒收。所以很多人选择用更方便高效的SMTP来发送邮件。要用 SMTP发送邮件,首先需要拥有一个支持SMTP的邮箱(包括Gmail、QQ、126、163等主流邮箱都支持SMTP功能,可能需要到设置中打开), 然后在WordPress中简单设置一下。你可以选择用插件,前面介绍了发送邮件的插件解决方案《WordPress基于SMTP发送邮件的插件WP SMTP》。前者还支持调试,可以方便地知道是什么原因导致发送失败。下面介绍的是无插件实现SMTP发送功能,毕竟插件多了对速度有不利的影响。这个功能实现起来也很简单,有两种方法可以实现。

第一种:打开主题文件夹下的functions.php(主机目录/wp-content/themes/主题名/functions.php),在最后一个 ?> 之前加上下面的代码即可:

//使用smtp发邮件

add_action(‘phpmailer_init’, ‘mail_smtp’);

function mail_smtp( $phpmailer ) {

$phpmailer->IsSMTP();

$phpmailer->SMTPAuth = true;//启用SMTPAuth服务

$phpmailer->Port = 465; //SMTP邮件发送端口,常用端口有:25、465和587(后两个为ssl安全连接端口)。

$phpmailer->SMTPSecure =”ssl”; //是否通过 ssl 连接,如果端口为25,则此处将”ssl”改为空白即””,否则不必改动

$phpmailer->Host = “smtp.gmail.com”; // SMTP服务器地址,在邮箱设置或者帮助中心中可以找到

$phpmailer->Username = “username@gmail.com”; //你的邮箱地址

$phpmailer->Password =”******”; //你的邮箱登陆密码

}

第二种:直接修改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 = ‘******’; //你的邮箱登陆密码

快去试一下,跟插件说拜拜吧~

小结:如果你纠结与是否使用插件来解决的时候,这里小编大概分析一下插件和非插件实现的不同,插件是有人已经提前基于扩展了这样一个功能,功能强不强大取决于插件的作者,所以找一个好的插件需要多花点心思。非插件解决方案不依赖于插件形式,你可以更自由扩展。当你不了解程序你可以选择插件来解决,如果你本身是个程序猿那么你就自己鼓捣吧。
来源:Gimhoy’s Blog

标签:

微信扫一扫二维码访问


16年前端经验
加微信好友直接沟通
了解《我的前十年》