咱中国的很多服务器都不配备邮件服务器,通常需要smtp来发送邮件。也有很多wordpress插件可以赋予smtp功能。如果不想用插件那应该怎么办呢?下面的代码可以借鉴:

<?php

// 修改phpmailer默认参数
add_action('phpmailer_init', 'mail_smtp');
function mail_smtp($phpmailer)
{

    $phpmailer->IsSMTP();
    $phpmailer->SMTPAuth = true;
    $phpmailer->Host = '';
    $phpmailer->Port = 994;
    $phpmailer->SMTPDebug = 0;
    $phpmailer->CharSet = "UTF-8";
    $phpmailer->FromName = '';
    $phpmailer->Username = '';
    $phpmailer->Password = '';
    $phpmailer->From = '';
    $phpmailer->SMTPSecure = 'ssl';
    $phpmailer->IsHTML(true);
}
add_action('wp_mail_failed', 'log_mailer_errors', 10, 1);


// 发送失败时生成log文件
function log_mailer_errors($wp_error)
{
    $fn = ABSPATH . '/mail.log';
    $fp = fopen($fn, 'a');
    fputs($fp, "Mailer Error: " . $wp_error->get_error_message() . "\n");
    fclose($fp);
}


// 设置默认发件人
add_filter('wp_mail_from', function () {
    return '***@*****.***';
});