无法使用YiiMailer发送邮件

时间:2014-01-11 14:02:30

标签: yii yii-extensions

我正在尝试使用YiiMailer Extension发送邮件,当我使用端口465收到错误“fwrite()时:发送16个字节失败,错误为errno = 10054现有连接被远程主机强行关闭”当我使用时587端口无法发送邮件。

代码: 在控制器中:

            $mail = new YiiMailer();
            $mail->setData(array('message' => 'Message to send', 'name' => 'John Doe', 'description' => 'Contact form', 'mail' => $mail));
            $mail->setFrom('abc@gmail.com', 'John Doe');
            $mail->setTo($_POST['UserLogin']['email']);
            $mail->setSubject('Reser Password');
            $mail->setBody('Simple message');
            $mail->IsSMTP();
            $mail->Host = "smtp.gmail.com";
            $mail->Port = 465;
            $mail->SMTPAuth = true;
            $mail->Username = "*******@gmail.com";
            $mail->Password = "********";
            if ($mail->send()) {
                Yii::app()->user->setFlash('contact','Thank you for contacting us. We will respond to you as soon as possible.');
                Yii::log("Mail sent");
            } else {
                Yii::app()->user->setFlash('error','Error while sending email: '.$mail->getError());
                Yii::log("Mail Error");
            }
             }

在main.php中

 'import'=>array(
    'application.models.*',
    'application.components.*',
            'ext.YiiMailer.YiiMailer',
),

请帮助我解决这个问题,我尝试了其他扩展,就像Emailer,PHPMailer一样但是我遇到了一些SMTP错误“smtp无法连接到远程服务器”

提前致谢

2 个答案:

答案 0 :(得分:1)

我猜你的服务器php_openssl中没有启用php.ini。检查phpinfo()以确保您已启用它。

此外,您可能需要添加行

$mail->SMTPSecure='ssl';
$mail->Mailer='smtps';

答案 1 :(得分:1)

这对我有用!

  $mail->IsSMTP();
        $mail->Host = "smtp.gmail.com";
        $mail->Port = 587;
        $mail->SMTPAuth = true;
        $mail->SMTPSecure= 'tls';
        $mail->Username = "*******@gmail.com";
        $mail->Password = "********";