使用gmail帐户时,不通过SMTP发送Swift邮件程序邮件

时间:2017-05-03 04:35:22

标签: php swiftmailer

我有以下使用Swift mailer通过PHP发送邮件的代码

<?php
$transport = Swift_SmtpTransport::newInstance('smtp.gmail.com',465, 'ssl')
            ->setUsername('my.email@mydomain.com')
            ->setPassword('emailpassword');


$message = Swift_Message::newInstance()
      ->setSubject("This is test subject")
      ->setFrom(array("sender.email@gmail.com"))
      ->setTo(array("recipient.email@gmail.com"))
      ->setBody("This is test mail body","text/html");

$mailer = Swift_Mailer::newInstance($transport);
$result = $mailer->send($message);

这非常有效,收件人会收到一封电子邮件。但是,如果我将传输中的用户名和密码更改为gmail的用户名和密码 -

$transport = Swift_SmtpTransport::newInstance('smtp.gmail.com',465, 'ssl')
            ->setUsername('sender.email@gmail.com') //this is the change, using gmail
            ->setPassword('senderpassword'); //this is the change

然后这不起作用。

有谁能告诉我我做错了什么?我缺少什么配置?

P.S。我也检查了SPAM文件夹

2 个答案:

答案 0 :(得分:0)

您是否在Gmail帐户中检查了两步验证?它关闭了吗?打开两步验证之前,我遇到了同样的问题。我关掉它然后工作。也许你可以尝试一下。

答案 1 :(得分:0)

唯一有效的方法是解锁验证码

https://accounts.google.com/UnlockCaptcha

我从This SO Question得到了这个答案。查看最高票数的回复。