2016-01-15 46 views
0

我嘗試用SwiftmailerBundle電子郵件以及使用多個郵件程序,swiftmailer.mailer.reserve使用Gmail和我有錯誤:Symfony的SwiftmailerBundle和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 } 

我parameters.yml:

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

和我的控制器:

   $message = \Swift_Message::newInstance() 
       ->setSubject('Hello Email') 
       ->setFrom('[email protected]') 
       ->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); 

我嘗試這樣,並有$測試= 1,但沒有電子郵件也許在谷歌需要的東西,配置我不明白

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

      $message = \Swift_Message::newInstance($transport) 
       ->setSubject('Hello Email') 
       ->setFrom('[email protected]') 
       ->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 "[email protected]" 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('[email protected]') 
       ->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); 

,並再次有$測試= 1,但沒有在電子郵件 - > setTo($用戶>的getUser() - >第一個() - > getEmail() )

+0

您可以顯示此錯誤的完整堆棧跟蹤? – xabbuh

+0

更新問題 –

回答

0

也許使用SSL連接和/或使用addPart SwiftMailer()函數進行郵件的2型動物格式

+0

不同格式? –

+0

與addParts()函數swiftMailer:http://swiftmailer.org/docs/messages.html – darkomen

+0

我需要發送電子郵件與模板 –