yii2 邮件如何不自动使用 SMTP Gmail 用户名作为"发件人"标头



我建立了一个网站,其中有一个联系方式。我使用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验证的电子邮件地址,而不是随机的。在这里检查

最新更新