2

ここに私のコード:

// 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\classes\Swift\Transport\AbstractSmtpTransport.php(422)

私を助けてください !

4

5 に答える 5

5

(完全な開示: 私は SendGrid で Web 開発者として働いています)

最近、これらの問題のいくつかを解決する新しい PHP ライブラリをリリースしました。私たちはまだ Swift を使用していますが、思い出すと、ライブラリがそれらを設定してくれるので、作業が少し楽になります。

お気軽にお問い合わせください。

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

于 2012-03-27T03:42:12.617 に答える
3

メッセージを 1 行で送信してみて、それが機能するか、別のエラーが返されるかを確認してください。エラーが返される場合は、サーバーまたは認証の問題である可能性があります。

$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 を参照してください。

アップデート

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);
于 2012-01-04T10:42:27.557 に答える
2

2 つの理由:

  1. 認証データが間違っている可能性があります

  2. アカウントはまだプロビジョニングされている可能性があるため、完全にアクティブ化されるまで少し待つ必要があります

それで

  • app/config/mail.php のすべての認証データをチェックして、https://sendgrid.com/docs/Integrate/index.html のデータと一致するようにします

  • sendgrid アカウントに次のようなトップメッセージ/通知がないことも確認してください。

アカウントはまだ準備中です。メールを送信できない可能性があります。

于 2014-11-28T10:19:21.733 に答える
0

sendgrid の Symfony 2 構成で同じエラー メッセージが表示されます。このマニュアルを見たことを願っています: http://docs.sendgrid.com/documentation/get-started/integrate/examples/symfony-example-using-smtp/

ポートを 587 に変更してみてください。

于 2012-01-04T14:51:16.517 に答える
0

多分あなたはどこが速すぎるのですか?sendgrid でキックスタートした後、同じ問題に直面していますが、Web API を使用すると、「アカウントが無効になっています」という実際のエラーが返されます...

最初のログイン後、全文を読んでいませんでした。アカ​​ウントが有効になるまで、最初にアカウントを確認します... OK、お待ちしております ^^

于 2013-06-20T16:54:37.787 に答える