3

我一直在尝试使用 swiftmailer 发送电子邮件,但是我无法这样做,我收到以下异常

request.CRITICAL: Uncaught PHP Exception Swift_TransportException: "Failed to authenticate on SMTP server with username "myusername@gmail.com" using 1 possible authenticators" at /home/ubuntu/Symfony/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Esmtp/AuthHandler.php line 184 [] []

谁能告诉我在这里想念什么?看起来身份验证由于某种原因失败了。

这是我的配置文件中的片段:

swiftmailer:    

  transport:  gmail
  encryption: ssl
  auth_mode:  login
  host:       smtp.gmail.com
  username:   myusername@gmail.com
  password:   password

我的开发服务器有 ubuntu v13 操作系统

4

1 回答 1

1

尝试从您的 config_dev.php 中删除

encryption: ssl
auth_mode:  login

无需指定加密:和 auth_mode:如果您使用传输:gmail 请参阅 symfony2.3 食谱 如何使用 Gmail 发送电子邮件

测试电子邮件选项的快速而肮脏的方法。初始化一个的symfony 2.3 项目并在 acme /DemoBundle 的 Default 控制器中放置这个动作。

/**
 * @Route("/mail")
 * @Template()
 */
public function mailAction() {


    $message = \Swift_Message::newInstance()
            ->setSubject('Hello Email')
            ->setFrom('send@example.com')
            ->setTo('mymail@example.com')
            ->setBody(
            $this->renderView(
                    'DemoBundle:Default:email.txt.twig', array('name' => 'User1')
            )
            )
    ;
    $this->get('mailer')->send($message);

    return array('name' => 'whatever');
}

Acme/Demo/Bundle/Resources/views/Default Frontend 模板中的 Twig 模板

邮件.html.twig

{% extends '::base.html.twig' %}
  {% block body %}
     This is mail template 
  {% endblock %}

邮件模板。email.txt.twig

This is a test email to {{name }}

转到 /mail 应该发送电子邮件。

于 2013-07-25T21:04:07.677 回答