Symfony SwiftmailerBundle和gmail有错误

时间:2016-01-15 15:35:29

标签: php symfony swiftmailer

我尝试使用SwiftmailerBundle和使用多个邮件程序的电子邮件,swiftmailer.mailer.reserve使用gmail,我有错误:

     Notice: Undefined property: Swift_Message::$*Swift_Mime_SimpleMimeEntity*_body

我的config.yml:

swiftmailer:
default_mailer: default
mailers:
    default:
        transport: "%mailer_transport%"
        host:      "%mailer_host%"
        username:  "%mailer_user%"
        password:  "%mailer_password%"
        spool:     { type: memory }
    reserve:
        transport: "%mailer_transport1%"
        host:      "%mailer_host1%"
        username:  "%mailer_user1%"
        password:  "%mailer_password1%"
        spool:     { type: memory }

my parameters.yml:

mailer_transport1: gmail
mailer_host1: smtp.gmail.com
mailer_user1: ***@gmail.com
mailer_password1: ***

和我的控制员:

                $message = \Swift_Message::newInstance()
                ->setSubject('Hello Email')
                ->setFrom('send@example.com')
                ->setTo($user->getEmail())
                ->setBody(
                    $this->renderView(
                    // app/Resources/views/Emails/registration.html.twig
                        'MyBundle:Mail:start.html.twig',
                        array('user' => $user, 'pass' => $pass, 'type' => $this->get('request')->request->get('usersRole'))
                    ),
                    'text/html'
                )
            ;
            $test = $this->get('swiftmailer.mailer.reserve')->send($message);

我尝试这样并且有$ test = 1但是没有电子邮件可能在谷歌需要一些配置我不明白

                $transport = \Swift_SmtpTransport::newInstance('smtp.gmail.com')
                ->setPort(465)
                ->setEncryption('ssl')
                ->setUsername('email@gmail.com')
                ->setPassword('mypass')
            ;

            $message = \Swift_Message::newInstance($transport)
                ->setSubject('Hello Email')
                ->setFrom('send@example.com')
                ->setTo($user->getEmail())
                ->setBody(
                    $this->renderView(
                    // app/Resources/views/Emails/registration.html.twig
                        'MyBundle:Mail:start.html.twig',
                        array('user' => $user, 'pass' => $pass, 'type' => $this->get('request')->request->get('usersRole'))
                    ),
                    'text/html'
                )
            ;
            $test = $this->get('swiftmailer.mailer.reserve')->send($message);

栈跟踪

堆栈跟踪

 Failed to authenticate on SMTP server with username "shuba.ivan.vikt@gmail.com" using 1 possible authenticators
500 Internal Server Error - Swift_TransportException

堆栈跟踪

in vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Esmtp/AuthHandler.php at line 181  -
                        }
                    }
                }
                throw new Swift_TransportException(
                    'Failed to authenticate on SMTP server with username "'.
                    $this->_username.'" using '.$count.' possible authenticators'
                    );
at Swift_Transport_Esmtp_AuthHandler ->afterEhlo (object(Swift_Transport_EsmtpTransport))
in vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/EsmtpTransport.php at line 307  +
at Swift_Transport_EsmtpTransport ->_doHeloCommand ()
in vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/AbstractSmtpTransport.php at line 118  +
at Swift_Transport_AbstractSmtpTransport ->start ()
in vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mailer.php at line 79  +
at Swift_Mailer ->send (object(Swift_Message))
in src/Artel/AdminBundle/Controller/BitController.php at line 172  +
at BitController ->sendEmail (object(Project), object(Developer), object(Bit))
in src/Artel/AdminBundle/Controller/BitController.php at line 75  +

尝试yandex并将文件保存在dirrectory

            transport: %mailer_transport1%
        host:      %mailer_host1%
        port:      %mailer_port1%
        username:  %mailer_user1%
        encryption: %mailer_encryption1%
        auth_mode:  %mailer_auth_mode1%
        password:  %mailer_password1%
        spool:
            type: file
            path: "%kernel.root_dir%/../spool"

    mailer_transport1: smtp
mailer_host1: smtp.yandex.ru
mailer_user1: ***@yandex.ru
mailer_password1: ***
mailer_encryption1: ssl
mailer_auth_mode1: login
mailer_port1: 465

                $mailer = $this->get('swiftmailer.mailer.reserve');

            $message = \Swift_Message::newInstance()
                ->setSubject('Hello Email')
                ->setFrom('send@example.com')
                ->setTo($user->getUser()->first()->getEmail())
                ->setBody(
                    $this->renderView(
                    // app/Resources/views/Emails/registration.html.twig
                        'MyBundle:Mail:hello.html.twig'
                    ),
                    'text/html'
                )
            ;

            $test = $mailer->send($message);

并且再次有$ test = 1但没有电子邮件 - > setTo($ user-> getUser() - > first() - > getEmail())

1 个答案:

答案 0 :(得分:0)

也许使用SSL连接或/并使用SwiftMailer的addPart()函数获取2种不同格式的邮件