Я создал веб-сайт с контактной формой. Я использую почтовую программу yii2 и настройку smtp gmail для отправки электронной почты. Это моя настройка smtp:
'host' => 'smtp.gmail.com',
'username' => '[email protected]',
'password' => 'mysecretpassword',
'port' => '587',
'encryption' => 'tls',
'streamOptions' => [
'ssl' => [
'allow_self_signed' => true,
'verify_peer' => false,
'verify_peer_name' => false,
],
],
И вот как я отправляю электронное письмо в своем контроллере:
Yii::$app->mailer->compose()
->setFrom(["[email protected]" => "My Name"])
->setTo(['[email protected]' => 'Henry'])
->setSubject("The Subject")
->setHtmlBody("<html><body><h1>Hello</h1></body></html>")
->send();
Оно успешно отправлено, но я проверяю заголовок электронной почты и нахожу это:
From: My Name <[email protected]>
Я хочу вот что:
From: My Name <[email protected]>
Если я нажму «Ответить», он ответит на [email protected], который является именем пользователя моей настройки smtp gmail вместо мой адрес электронной почты@gmail.com.
Как я могу использовать [email protected] в заголовке From?






Согласно этот вопрос вы должны установить setFrom как индексированный массив и добавить setReplyTo вызов:
Yii::$app->mailer->compose()
->setFrom(["[email protected]", "My Name"])
->setReplyTo('[email protected]')
->setTo(['[email protected]' => 'Henry'])
->setSubject("The Subject")
->setHtmlBody("<html><body><h1>Hello</h1></body></html>")
->send();
Также возможно, что сама Gmail позволяет отправлять from только на проверенные адреса электронной почты, а не на случайные. Проверьте здесь
@HenryGunawan Извините, это setReplyTo. Пожалуйста, используйте соответствующую документацию по IDE и, прежде чем публиковать сообщения об ошибках.
Я получил ошибку: вызов неизвестного метода: yii\swiftmailer\Message::replyTo()