主机不支持mail函数怎么办?那就用smtp发邮件,WordPress默认的发邮件方式是通过mail函数。之前没有意识到,后来想实现评论自动邮件回复功能,发现我用的主机商不支持mail函数。这可怎么办呢?后来搜刮了几个方案,可以用smtp方式发送。下面是实现方法。
方法一:使用插件
使用Configure SMTP或者WP Mail SMTP插件,后台搜索插件即可下载。
方法二:在主题functions.php中添加代码
function mail_smtp($phpmailer){ $phpmailer->IsSMTP(); $phpmailer->SMTPAuth = true; //启用SMTPAuth服务 $phpmailer->Port = 465; //SMTP邮件发送端口,这个和下面的对应,如果这里填写25,则下面为空白 $phpmailer->SMTPSecure = "ssl"; //是否验证 ssl,这个和上面的对应,如果不填写,则上面的端口须为25 $phpmailer->Host = "smtp.163.com"; //邮箱的SMTP服务器地址 $phpmailer->Username = "*****@163.com"; //邮箱地址 $phpmailer->Password = "*******"; //邮箱密码 } add_action('phpmailer_init','mail_smtp');
以后邮件回复设置中的变量wp_email要和上面的Username一致。
方法三:修改wp-includes目录下的pluggable.php和class-phpmailer.php文件(仅适用于WP3.0以上版本)
1、在pluggable.php中搜索如下代码
$phpmailer->IsMail();
替换为:
$phpmailer->IsSMTP();
2、在class-phpmailer.php中配置如下信息:
var $Mailer = 'smtp'; var $Host = 'smtp.163.com'; //邮箱的SMTP服务器地址 var $Port = 465; //SMTP邮件发送端口。一般默认为25,示例用的是465 $SMTPSecure = "ssl"; //是否验证ssl $SMTPAuth = true; //开启SMTP $Username = 'xxxx@163.com'; //邮箱地址 var $Password = '******'; //邮箱密码
大家结合自己情况选择操作。