2

メンバーをループして、それぞれに個別にメールを送信するニュースレター スクリプトがあります。これは以前は正常に実行されていましたが、数が増えるにつれて、スクリプトが途中でクラッシュし始めました。私は SwiftMailer を使用していますが、「PHP のデフォルトの mail() として mail() を使用して送信に失敗しました」というメッセージが表示されます。ネイティブの mail() 関数の代わりに SMTP で送信しようとする利点はありますか? または、別の解決策を検討する必要があります。ご指摘ありがとうございます。

4

3 に答える 3

6

実際には、このmail()関数はメールを配信しません。生成したメールをシステムの SMTP サーバーに渡すだけです。いずれにせよ、SMTP を使用することになります。

swiftmailer が PHP の mail() 関数を使用している場合は、システムの SMTP 設定に問題がある可能性があります。システム ログ (特にメールログ) を調べて手がかりを探し、Swiftmailer がより適切なエラー メッセージを表示するかどうかを確認します。

于 2011-03-03T17:07:02.173 に答える
4

Swiftmail を開発し、おそらくこれらの問題に頭を悩ませた賢い男の提案によると(あなたと私が同じことをするのを避けるために)、mailトランスポートではなく SMTP を使用することが役立つかもしれません。

私の経験 (および他の人の経験) では、mail() 関数は特に予測可能ではなく、役に立ちません。

特に、mail() 関数は、Linux サーバーと Windows サーバーの間でまったく異なる動作をします。Linux では sendmail を使用しますが、Windows では SMTP を使用します。...

このトランスポートを使用する場合の重大な欠点は次のとおりです。

  • 予測できないメッセージ ヘッダー
  • 配達の失敗に関するフィードバックの欠如
  • リアルタイムの配信フィードバックを必要とするいくつかのプラグインのサポートの欠如

それは最後の手段であり、私たちは情熱を持ってそう言います!

さらに、同じページで、to フィールドを単純に繰り返すだけでニュースレターを処理する方法についても説明しています。

于 2013-02-25T18:42:08.260 に答える
1

このmail()関数は、SMTP でメールを送信します。ただし、次のようなものを試してみてくださいPEAR::Mail。を使用mail()すると、メッセージごとに新しい SMTP 接続が開かれますが、これはループ内で行うのはかなり非効率的です。これがエラーの原因である可能性は非常に高いですが、このような一般的なエラー メッセージでは、さらに掘り下げないと確認できません。

于 2011-03-03T17:07:10.577 に答える