Я также пришел сюда после нескольких часов исследований. Я наконец нашел верный ответ. Я хотел отправлять электронную почту с почтовых серверов Google, а не с моего хоста с аутентификацией SMTP.
Вы можете отследить письмо с его полными заголовками внутри gmail, следуйте этому руководству.
https://support.google.com/mail/answer/29436?hl=en
У @ fullbaked был правильный ответ для аутентификации вашей электронной почты через smtp, но вы все равно будете отправлять ее через хост.
$transporter = Swift_SmtpTransport::newInstance('smtp.gmail.com', 465, 'ssl')
->setUsername($this->username)
->setPassword($this->password);
$this->mailer = Swift_Mailer::newInstance($transporter);
@ ducin был корректен для разных портов и типов шифрования.
$transporter = Swift_SmtpTransport::newInstance('smtp.gmail.com', 465, 'ssl')
ИЛИ более современный и более безопасный, используйте;
$transporter = Swift_SmtpTransport::newInstance('smtp.gmail.com', 587, 'tls')
Если вы хотите отправлять напрямую с сервера Gmail, вам нужно установить режим авторизации. Обычный по умолчанию.
$transporter = Swift_SmtpTransport::newInstance('smtp.gmail.com', 587, 'tls')
->setAuthMode('login')
->setUsername('username@gmail.com')
->setPassword('password');
$mailer = Swift_Mailer::newInstance($transporter);
@ gene также верен, вам нужно аутентифицировать ваше приложение, поэтому следуйте его инструкциям.
Кроме того, чтобы не допустить попадания вашей электронной почты в папку со спамом, вам также необходимо добавить текстовые записи DNS с помощью DKIM (ключи домена)
https://support.google.com/a/answer/174124?hl=en
SPF records
https://support.google.com/a/answer/33786?hl=en
и DMARC
https://support.google.com/a/answer/2466580?hl=en