Не могу отправить почту с Gmail - PullRequest
0 голосов
/ 15 февраля 2019

Я пытаюсь отправить электронное письмо, когда пользователь подписывается на моем веб-сайте.Чтобы сэкономить время ... Я использую Swift_Mailer с Symfony .

Сначала я попытался отправить письмо с консоли:

php .\bin\console swiftmailer:email:send

И это работает, письмо было отправлено, и клиент получил его.

Итак, теперь я сказал себе, что смогу отправлять электронные письма с кодом.Это мой код контроллера:

public function register(Request $request, \Swift_Mailer $mailer)
{
    // Here saving new user in the database 

    $this->sendMail($user->getEMail(), $mailer);

    $content = $this->renderView("register.html.twig");
    return new Response($content);
}

private function sendMail($email, \Swift_Mailer $mailer)
{
    $message = (new \Swift_Message('Hello Email'))
        ->setFrom(['my.email@gmail.com' => "my name"])
        ->setTo($email)
        ->setBody('Here is the message itself');

    $mailer->send($message);
}

И это мой файл .env:

MAILER_URL=gmail://my.email@gmail.com:myPasswordHere@localhost

Когда я пытаюсь отправить письмо, нет ошибок, я пытался этот StackOverflowссылка , но не проблема, эхом «Успешно», но в почтовом ящике Gmail ничего нет и ничего в почтовом ящике моего клиента.

Не могли бы вы помочь мне ... сэкономить мне время ^^

------------------------------------------------------------- РЕДАКТИРОВАТЬ 1 ------------------------------------------------------------

Я никогда не редактировал файл config/packages/swiftmailer.yaml, вот его содержимое:

swiftmailer:
    url: '%env(MAILER_URL)%'
    spool: { type: 'memory' }

------------------------------------------------------------- РЕДАКТИРОВАТЬ 2 ------------------------------------------------------------

Я также попытался создать новый транспортер с этим кодом:

$transport = (new \Swift_SmtpTransport('smtp.gmail.com', 465))
        ->setUsername('my.email@gmail.com')
        ->setPassword('myPasswordHere');
$mailer = new \Swift_Mailer($transport);

И вот ошибка, которую я получаю: Connection could not be established with host smtp.gmail.com [php_network_getaddresses: getaddrinfo failed: Unknown host. #0]

------------------------------------------------------------- РЕДАКТИРОВАТЬ 3 ------------------------------------------------------------

У меня есть swiftmailer.yaml файл в папке config/packages/dev, и это содержимое по умолчанию:

# See https://symfony.com/doc/current/email/dev_environment.html
swiftmailer:
    # send all emails to a specific address
    #delivery_addresses: ['me@example.com']

Я попытался поместить то же содержимое, что и в config/packages/swiftmailer.yaml,но без результата.

1 Ответ

0 голосов
/ 15 февраля 2019

Я не вижу ничего подобного в вашем коде:

    // Create the Transport
    $transport = (new \Swift_SmtpTransport('mail hoster etc', port))
        ->setUsername('your email')
        ->setPassword('your password');
    // Create the Mailer using your created Transport
    $mailer = new \Swift_Mailer($transport);

Возможно, это причина того, что ваши письма не отправляются.

...