отправлять письма через sendgrid - PullRequest
2 голосов
/ 04 января 2012

Я пытаюсь отправить почту через sendgrid, вот мой код:

// Setup Swift mailer parameters
        $transport = Swift_SmtpTransport::newInstance('smtp.sendgrid.net', 25);
        $transport->setUsername($username);
        $transport->setPassword($password);
        $swift = Swift_Mailer::newInstance($transport);

        // Create a message (subject)
        $message = new Swift_Message($subject);

        // attach the body of the email
        $message->setFrom($from);
        $message->setBody($html, 'text/html');
        $message->setTo($to);
        $message->addPart($text, 'text/plain');

        // send message
        if ($recipients = $swift->send($message, $failures))
        {              
          // This will let us know how many users received this message
          echo 'Message sent out to '.$recipients.' users';exit;
        }

Я получил эту ошибку: Swift_TransportException

Ожидаемый код ответа 250, но получил код "", с сообщением ""

... \ SwiftMailer \ Lib \ Классы \ Свифта \ Транспорт \ AbstractSmtpTransport.php (422)

Пожалуйста, помогите мне!

Ответы [ 5 ]

5 голосов
/ 27 марта 2012

(полное раскрытие: я работаю в SendGrid в качестве веб-разработчика)

Недавно мы выпустили новую библиотеку PHP, которая может решить некоторые из этих проблем. Мы по-прежнему используем Swift, но, если я не забуду, библиотека устанавливает все это для вас, что немного облегчает работу.

Не стесняйтесь обращаться к нам и за помощью!

http://github.com/sendgrid/sendgrid-php

3 голосов
/ 04 января 2012

Попробуйте отправить сообщение в одну строку, чтобы увидеть, работает ли это или возвращает другую ошибку. Если он возвращает ошибку, возможно, это проблема с сервером или аутентификацией.

$result = $swift->send($message);

Если это работает, вы можете попробовать приведенный ниже код, а если он работает, настроить его так, чтобы он отображал получателей вместо сбоев.

if (!$swift->send($message, $failures))
{
  echo "Failures:";
  print_r($failures);
}

Кроме этого, проверьте, все ли переменные не пусты.

Дополнительные примеры см .: http://swiftmailer.org/docs/sending.html#quick-reference-for-sending-a-message

UPDATE

Код Sendmail:

//Create the Transport
$transport = Swift_MailTransport::newInstance();

//Create the Mailer using your created Transport
$mailer = Swift_Mailer::newInstance($transport);

//Create a message
$message = Swift_Message::newInstance('Subject')
  ->setFrom(array('john@doe.com' => 'John Doe'))
  ->setTo(array('receiver@domain.org', 'other@domain.org' => 'A name'))
  ->setBody('Here is the message itself')
  ;

//Send the message
$numSent = $mailer->send($message);

printf("Sent %d messages\n", $numSent);
2 голосов
/ 28 ноября 2014

два резонона:

  1. у вас могут быть неверные данные аутентификации

  2. ваша учетная запись все еще может быть подготовлена, поэтому вы должны немного подождать, пока она полностью активируется

так

  • проверить все данные аутентификации из app / config / mail.php на соответствие данным из https://sendgrid.com/docs/Integrate/index.html

  • отметьте также, что в вашей учетной записи sendgrid нет верхнего сообщения / уведомления, например:

Ваша учетная запись все еще обрабатывается, возможно, вы не сможете отправить сообщения электронной почты.

0 голосов
/ 20 июня 2013

Может быть, вы слишком быстро?Я столкнулся с той же проблемой после кикстарта с sendgrid и теперь с web-api, я получил реальную ошибку "учетная запись отключена" ...

Я не прочитал полный текст после первого входа - онисначала проверим аккаунт, пока он не активируется ... хорошо, так что я жду ^^

0 голосов
/ 04 января 2012

У меня просто такое же сообщение об ошибке с моей конфигурацией Symfony 2 для sendgrid. Надеюсь, вы видели это руководство: http://docs.sendgrid.com/documentation/get-started/integrate/examples/symfony-example-using-smtp/

Попробуйте изменить порт на 587. Дайте мне знать, что это работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...