我正在尝试使用以下代码从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插件,所以我希望代码是灵活的(这样它可以在任何地方使用。所以变化的协议不能妨碍。)
答案 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配置的方法。
希望这能帮到你一点点!