主机不支持mail函数怎么办

主机不支持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 = '******'; //邮箱密码

大家结合自己情况选择操作。

展开评论