Переопределить почтовый URL по умолчанию в Symfony - PullRequest
1 голос
/ 27 февраля 2020

Я пытаюсь предоставить пользователям возможность отправлять мне электронные письма в Symfony, я могу отправлять письма себе, но не могу получать электронные письма от других писем, потому что адрес электронной почты по умолчанию указан в .env файл не переопределяется.

  /**
 * @Route("/send_msg", name="send_msg", methods={"GET","POST"})
 */
public function index(Request $request, \Swift_Mailer $mailer)
{

  $name =  $request->query->get('name');
  $mail =  $request->query->get('mail');
  $msg =  $request->query->get('msg');


    $message = (new \Swift_Message('Client'))
        ->setFrom($mail)
        ->setTo('my_gmail@gmail.com')
        ->setBody($msg)

    ;

    $mailer->send($message);
    return new JsonResponse();

}

, а это файл .env

###> symfony/mailer ###
# MAILER_DSN=smtp://localhost
###< symfony/mailer ###

 # For Gmail as a transport, use: "gmail://username:password@localhost"
 # For a generic SMTP server, use: "smtp://localhost:25?encryption=&auth_mode="
 # Delivery is disabled by default via "null://localhost"
  MAILER_URL=gmail://my_gmail@gmail.com:my_pass@localhost
 ###< symfony/swiftmailer-bundle ###

    ###> symfony/sendgrid-mailer ###
    #MAILER_DSN=sendgrid://KEY@default
    ###< symfony/sendgrid-mailer ###

1 Ответ

5 голосов
/ 27 февраля 2020

Вы используете свои учетные данные Gmail в качестве SMTP-сервера. Вы не можете и не должны отправлять сообщения с любого другого адреса электронной почты через учетные данные Gmail. Даже если вы используете другой SMTP-сервер, который разрешает любой адрес От, вы не должны использовать адрес электронной почты, который не аутентифицирован в вашей службе SMTP, в качестве адреса От, потому что ваша электронная почта, вероятно, никогда не увидит свет входящей почты.

Можно установить адрес для ответа на адрес электронной почты вашего пользователя с помощью $message->setReplyTo($mail);. Таким образом, если вы нажмете кнопку ответа в своем почтовом ящике, письмо должно быть адресовано на электронный адрес пользователя.

...