3

CodeIgniter(v1.7)とPHPMailer(v5.1)を使用して、PHPからプレーンテキストでメールを送信します。現在の本番環境では安価なSMTPリレーを使用しており、CritSendまたはSendGridに切り替える予定です。現在、RackspaceCloudサーバーからオプションをテストしています。

SendGrid SMTPを使用すると、エミアルのすべての「\ r \ n」改行が2倍になるため、「\ r \ n \ r\n」になります。

CritSend SMTPと他の2つのSMTPサーバーを使用すると、すべて正常に機能します。

SendGridのテクニカルサポートは、システムとは何の関係もないと考えていますが、同じ問題を抱えている別のクライアントについて聞いたことがあり、クライアント側の構成を変更することで解決したようです。

誰かがこれを経験しましたか?

CritSendはうまく機能し、機能に関してはSendGridと同じように見えるので、これは私たちにとって重要ではありません。しかし、好奇心旺盛なタイプなので、これを手放すことはできません:-)

通常のセットアップ:PHPスクリプト-> sendmail/Postfix->外部SMTPリレー->...。

さまざまなSMTPリレーをテストするために、postfix設定を変更しますが、SendGridのみが、他のすべてのSMTPオプションが正常に機能する追加の改行を提供します。CodeIgniterの電子メールクラスのデバッグ機能を介して電子メールをダンプすると、接尾辞に進む前に問題なく表示されます。

代替セットアップ:PHPスクリプト(CIメールクラスまたはPHPMialerのいずれか)->外部SMTPリレー->...。

さまざまなSMTPリレーをテストするために、CI電子メール構成またはPHPMialer構成のSMTP設定を変更します。SendGridのみが、他のすべてのSMTPオプションが正常に機能する追加の改行を提供します。

私が見る限り、遊ぶためのオプションはそれほど多くありません。「utf-8」と「ISO-somethingorother」を試しましたが、私たちの側のすべての改行は「\ r \n」です......どこかで非常にあいまいなバグのようです。

何か案は?

4

2 に答える 2

3

OK、もう少し実験して、これらの設定により、プレーンテキストの電子メールが PHPMailer から SendGrid をうまく通過するようになります。

    $mailer->CharSet    = "utf-8";
    $mailer->LE         = "\r\n";
    $mailer->Encoding   = "quoted-printable";
    $mailer->WordWrap   = 80;

「quoted-printable」の部分が鍵です。

于 2011-06-08T19:51:00.597 に答える
1

私にとってうまくいったのは、次のようにPHPテキストで実際の改行を使用することでした:

    // Prepare email
    $email = array(
        'api_user'  => App::emailAPIUser(),
        'api_key'   => App::emailAPIPwd(),
        'to'        => $email,
        'subject'   => 'Thank you for entering ' . App::name(),
        'html'      => $email_body,
        'text'      => '

Thank you for entering Competition. 

You are now in the running to WIN your prices valued at $6000. 

Winners will be notified of their status by the 14th February 2012. 

Good luck!',
        'from'      => 'competitions@company.com'
    );
于 2014-12-15T03:53:23.673 に答える