我创建了联系表单,其中包含保存在数据库中的字段名称,电子邮件,电话,消息。 我希望联系表单在Yii2中通过localhost使用phpmailer发送电子邮件。我尝试跟进仍然无法发送电子邮件的http://www.yiiframew.../zyx-phpmailer/链接。
采取的措施 1)我已经通过作曲家下载了phpmailer。 2)我在config文件夹中设置了web.php为
'mail' => [
'class' => 'zyx\phpmailer\Mailer',
'viewPath' => 'yii2Basic',
'useFileTransport' => false,
'config' => [
'mailer' => 'smtp',
'host' => 'smtp.gmail.com',
'port' => '587',
'smtpsecure' => 'tsl',
'smtpauth' => true,
'username' => 'mygmail',
'password' => '*******',
],
],
3)控制器动作
public function actionCreate()
{
$model = new Contact();
if ($model->load(Yii::$app->request->post()) )
{
Yii::$app->mail->compose()
->setFrom(['mygmail' => 'My Example Message'])
->setTo([$model->email => $model->name])
->setSubject('test subject')
->setTextBody($model->message)
->send();
$model->save();
//return $this->redirect(['view', 'id' => $model->id]);
return $this->redirect(['index']);
} else {
return $this->render('create', [
'model' => $model,
]);
}
}
仍然将代码保存到我的数据库但不向gmail发送电子邮件。
请在我出错的地方帮助我,我该怎么办。
答案 0 :(得分:0)
从[下载php邮件程序]它用于从localhost发送邮件 下载https://github.com/PHPMailer/PHPMailer如果您的系统不支持phps,则更改phpmailer / examples-> gmail.php
mail.php->它位于php邮件程序之外
<?php
require 'phpmailer/PHPMailerAutoload.php';
$mail = new PHPMailer;
$mail->isSMTP();
$mail->Host = 'smtp.gmail.com';
$mail->SMTPAuth = true;
$mail->Username = 'hello@gmail.com';
$mail->Password = "hello";
$mail->SMTPSecure = 'tls';
$mail->Port = 587;
$mail->From = 'hello@gmail.com';
$mail->FromName ='hello';
$mail->addAddress('hi@gmail.com', 'hi');
$mail->addReplyTo('hello@gmail.com', 'hello');
$mail->WordWrap = 50;
$mail->isHTML(true);
$mail->Subject = 'Using PHPMailer';
$mail->Body = 'Hi Iam using PHPMailer library to sent SMTP mail from localhost';
if(!$mail->send()) {
echo 'Message could not be sent.';
echo 'Mailer Error: ' . $mail->ErrorInfo;
exit;
}
echo 'Message has been sent';
尝试这个click here这是解决方案