examplep localhost中的Swiftmailer不发送电子邮件(已经做了大量研究)


Swiftmailer in xampp localhost doesnot send e-mail (have done a lot of research)

所以我花了几天时间尝试通过php使用swiftmailer发送电子邮件,我使用的是localhost xampp服务器v3.2.1,php版本是5.4.31,我相信我的swiftmailler是v5.3

这是PHP文件:

require_once 'lib/swift_required.php';
$transport = Swift_SmtpTransport::newInstance('smtp.gmail.com',465,'ssl')
->setUsername('username@gmail.com')
->setPassword('password');
$mailer = Swift_Mailer::newInstance($transport);
$message = Swift_Message::newInstance('Wonderful Subject')
->setFrom(array('username@gmail.com'))
->setTo(array('recipient@gmail.com'))
->setBody('Hello World')
;
$result = $mailer->send($message);
if (!$mailer->send($message,$failures)) {
  echo "Failures:";
  print_r($failures);
} else {
  echo "sent";
}

页面刚刚返回空白,没有发送或接收任何电子邮件。请告诉我,在开始工作之前,我是否应该配置什么,或者我是否遗漏了一行重要的代码或其他什么。

提前谢谢。

我一直在尝试,有一次我在错误日志中得到了一个输入,那就是:

[15-Oct-2014 16:33:49 Europe/Berlin] PHP Fatal error:  Uncaught exception 'Swift_TransportException' with message 'Expected response code 250 but got code "535", with message "535-5.7.8 Username and Password not accepted. Learn more at
535 5.7.8 http://support.google.com/mail/bin/answer.py?answer=14257 fn2sm17247597pdb.75 - gsmtp
"' in C:'xampp'htdocs'1'vendor'swiftmailer'swiftmailer'lib'classes'Swift'Transport'AbstractSmtpTransport.php:386
Stack trace:
#0 C:'xampp'htdocs'1'vendor'swiftmailer'swiftmailer'lib'classes'Swift'Transport'AbstractSmtpTransport.php(281): Swift_Transport_AbstractSmtpTransport->_assertResponseCode('535-5.7.8 Usern...', Array)
#1 C:'xampp'htdocs'1'vendor'swiftmailer'swiftmailer'lib'classes'Swift'Transport'EsmtpTransport.php(245): Swift_Transport_AbstractSmtpTransport->executeCommand('RSET'r'n', Array, Array)
#2 C:'xampp'htdocs'1'vendor'swiftmailer'swiftmailer'lib'classes'Swift'Transport'Esmtp'Auth'XOAuth2Authenticator.php(56): Swift_Transport_EsmtpTransport->executeCommand('RSET'r'n', Array)
#3 C:'xampp'htdocs'1'vendor'swiftmailer'swiftma in C:'xampp'htdocs'1'vendor'swiftmailer'swiftmailer'lib'classes'Swift'Transport'AbstractSmtpTransport.php on line 386

它终于成功地发送了电子邮件,我所要做的就是更改我的gmail帐户中的安全设置并禁用安全保护,现在它完美地发送了

试着这样设置你的运输工具:

$transport = Swift_SmtpTransport::newInstance('ssl://smtp.gmail.com', 465);

您也可以检查异常:

try {
    $mailer = Swift_Mailer::newInstance($transport);
} catch(Swift_TransportException $exception) {
    var_dump($exception);
}

"535-5.7.8不接受用户名和密码。"表示不允许第三方访问您的帐户。你需要通过更新你的谷歌账户来授予他们访问第三方的权限:

https://myaccount.google.com/

在"登录"下找到短语"允许不太安全的应用程序访问",并将其更改为"allow.