Wordpress PHPmailer无法正常工作

时间:2014-03-20 10:52:16

标签: php wordpress phpmailer

我正在尝试使用以下代码从WordPress插件发送电子邮件

include_once(ABSPATH . WPINC . '/class-phpmailer.php'); 
            $mail = new PHPMailer();
            $mail->IsSMTP();
            $mail->ContentType = 'text/plain'; 
            $mail->IsHTML(false);
            $mail->SetFrom(($enquiry_informations['display_email_address']!="")?$enquiry_informations['display_email_address']:"", "Autoquote");
            $mail->AddAddress($customer_email_address, $customer_email_name);
            $mail->Subject = $enquiry_informations['enquiry_autoresponse_subject'];
            $mail->Body = $autoresponse_msg;
            if($enquiry_informations['enquiry_autoresponse_attachment']!==NULL&&$enquiry_informations['enquiry_autoresponse_attachment']!==""){
                $mail->addAttachment(plugin_dir_path(__FILE__) . "attachments/" . $enquiry_informations['enquiry_autoresponse_attachment']);
            }
            $info = $mail->Send();
        if($info){
        echo "Sent";
}else{
    echo "Failed";
    echo $mail->ErrorInfo;
}

但是,我收到以下错误: 以下发件人地址失败:root @ localhost:调用Mail()而未连接。 我做了一些谷歌搜索,发现它可能与协议有关。这是一个wordpress插件,所以我希望代码是灵活的(这样它可以在任何地方使用。所以变化的协议不能妨碍。)

2 个答案:

答案 0 :(得分:3)

使用时未传递所有必要值。使用isSMTP()方法时,您还必须提供以下信息:

$mail->isSMTP();                                      // Set mailer to use SMTP
$mail->Host = 'smtp1.example.com;smtp2.example.com';  // Specify main and backup server
$mail->SMTPAuth = true;                               // Enable SMTP authentication
$mail->Username = 'jswan';                            // SMTP username
$mail->Password = 'secret';                           // SMTP password
$mail->SMTPSecure = 'tls';                            // Enable encryption, 'ssl' also accepted

阅读here如何正确使用该课程。

答案 1 :(得分:0)

我认为最好的方法是在Wordpress中使用邮件助手。

http://codex.wordpress.org/Function_Reference/wp_mail

错误可能是因为您错过了正确的SMTP配置,我不知道也无法找到如何调整Wordpress配置的方法。

希望这能帮到你一点点!