2016-02-16 1 views
4

Я знаю, что у этого вопроса есть куча ответов вроде this на SO уже, но ни одно из решений, похоже, не работает для меня.Symfony SwiftMailer - ожидаемый код ответа 220, но получил код «», с сообщением «»

Я пытаюсь отправить электронное письмо из своего домена Google Apps. Письма отправляются большую часть времени, но иногда это исключение попадает и письмо не отправляется.

Uncaught PHP Exception Swift_TransportException: "Expected response code 220 but got code "", with message """ at C:\HostingSpaces\abc\domain.com\wwwroot\vendor\swiftmailer\swiftmailer\lib\classes\Swift\Transport\AbstractSmtpTransport.php line 383 {"exception":"[object] (Swift_TransportException(code: 0): Expected response code 220 but got code \"\", with message \"\" at C:\\HostingSpaces\\abc\\domain.com\\wwwroot\\vendor\\swiftmailer\\swiftmailer\\lib\\classes\\Swift\\Transport\\AbstractSmtpTransport.php:383)"} [] 

Да, я использую SSL, да, я дал доступ к менее защищенным приложениям и да я использую порт 465. Я включил буферизацию, так что приложение не ломается, потому что исключение не попасться ,

Мой config.yml ниже

swiftmailer: 
    transport: smtp 
    host:  smtp.gmail.com 
    username: [email protected] 
    password: password 
    port:  465 
    encryption: ssl 
    spool: { type: memory } 

И мой электронный класс ниже

public function send_new_order_email($entity) { 
    try{ 
     $message = $this->getEmailObj("[email protected]"); 
     $message->setBody(
       $this->renderView(
        'APIBundle:Emails:ops_neworder.html.twig', 
        array('entity' => $entity) 
       ), 
       'text/html' 
      )->setSubject('New Order : '.$entity->getId()); 

     $this->container->get('mailer')->send($message); 
    } 
    catch(Exception $e){} 
} 

private function getEmailObj($email){ 
    $message = \Swift_Message::newInstance() 
      ->setFrom('[email protected]') 
      ->setTo($email); 
    return $message; 
} 

Есть ли у вас какие-либо предложения, чтобы сделать эту работу?

ответ

0

В Symfony с Swiftmailer есть специализированная конфигурация для Gmail, которая обрабатывает электронную почту, забывая о остальной конфигурации. Эта работа для меня во многих ocassions:

swiftmailer: 
    transport: gmail 
    username: your_gmail_username 
    password: your_gmail_password 

Я надеюсь, что это имеет смысл для вас

You have more information here

 Смежные вопросы

  • Нет связанных вопросов^_^