我正在尝试使用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无法连接到远程服务器”
提前致谢
答案 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 = "********";