Yii:没有连接就调用了Mail()

时间:2015-08-17 11:47:08

标签: php email yii phpmailer

我正在尝试使用YiiPHPMailer发送电子邮件。我正在使用实时服务器。以下是Yii's main.php中的电子邮件配置:

'Smtpmail' => array(
            'class' => 'application.extensions.smtpmail.PHPMailer',
            'Mailer' => 'smtp',
            'SMTPAuth' => true,
        ),

这是我得到的错误:

  

以下发件人地址失败:noreply@mywebsite.com:已调用   邮件()没有连接

这是我的控制器代码:

$mail->IsHTML(true);
$mail->From = Yii::app()->params['adminEmail'];
$mail->FromName = empty($_POST['EmailForm']["from_name"]) 
Yii::app()->params['emailFrom'] : $_POST['EmailForm']["from_name"];
$mail->Subject = $subject;
$mail->Body = nl2br($message) . $mail->Body;
$mail->AddAddress($to);
$mail->AddCC($cc);

if (!$mail->Send()) {
    Yii::app()->user->setFlash('error', $mail->ErrorInfo);
    $this->redirect(array('update', 'id' => $id));
} 
else {
      Yii::app()->user->setFlash('success', "Email sent successfully!");
      $this->redirect(array('update', 'id' => $id));
}

任何帮助?

1 个答案:

答案 0 :(得分:0)

您正在启用身份验证,但未提供ID或密码,这似乎不太可行。您还将提交者的地址设置为来自地址,这也可能会失败,因为它是伪造的SPF检查失败。将您自己的地址设置为发件人地址,并将提交者放入回复中。

除此之外,在PHPMailer中启用调试输出(SMTPDebug = 2 - 我不确定你是如何从Yii设置的)所以你可以看到SMTP会话。