无法通过Gmail发送邮件

时间:2019-02-15 13:33:10

标签: php symfony gmail wamp swiftmailer

当用户订阅我的网站时,我正在尝试发送电子邮件。
为了节省时间...我在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

当我尝试发送邮件时,没有错误,我尝试了this StackOverflow link,但是没有问题,回显了“成功”,但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 :(得分:-1)

我在您的代码中看不到以下内容:

    // 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);

也许这是您的邮件未发送的原因。