我建立了一个网站,其中有一个联系方式。我使用yii2 mailer和smtp gmail设置来发送电子邮件。这是我的smtp设置:
'host' => 'smtp.gmail.com',
'username' => 'websendmail1234@gmail.com',
'password' => 'mysecretpassword',
'port' => '587',
'encryption' => 'tls',
'streamOptions' => [
'ssl' => [
'allow_self_signed' => true,
'verify_peer' => false,
'verify_peer_name' => false,
],
],
这就是我在控制器中发送邮件的方式:
Yii::$app->mailer->compose()
->setFrom(["myemail@gmail.com" => "My Name"])
->setTo(['henry.gunawan.1985@gmail.com' => 'Henry'])
->setSubject("The Subject")
->setHtmlBody("<html><body><h1>Hello</h1></body></html>")
->send();
发送成功,但我检查邮件头,发现如下:
From: My Name <websendmail1234@gmail.com>
我想要的是这个:
From: My Name <myemail@gmail.com>
如果我点击回复,它会回复到websendmail1234@gmail.com这是我的smtp gmail设置的用户名而不是myemail@gmail.com
我如何使用myemail@gmail.com在我的头从?
根据这个问题,您必须将setFrom
设置为索引数组并添加setReplyTo
调用:
Yii::$app->mailer->compose()
->setFrom(["myemail@gmail.com", "My Name"])
->setReplyTo('myemail@gmail.com')
->setTo(['henry.gunawan.1985@gmail.com' => 'Henry'])
->setSubject("The Subject")
->setHtmlBody("<html><body><h1>Hello</h1></body></html>")
->send();
也有可能,Gmail本身只允许发送from
验证的电子邮件地址,而不是随机的。在这里检查