2011-12-28 15 views
0

symfony 1.4.8(およびORTとしてDoctrine)でswiftmailer(トランスポート)を使用してメールを送信しています。symfonyでメールを送信

本の説明どおりにすべてを構成しました。

dev: 
    mailer: 
    class: sfMailer 
    param: 
     delivery_strategy: spool 
     spool_class:  Swift_DoctrineSpool 
     spool_arguments: [ MailMessage, message, getSpooledMessages ] 
     transport: 
     class: Swift_SmtpTransport 
     param: 
      host: something 
      port: 26 
      encryption: ~ 
      username: something 
      password: something 

リアルタイム戦略を使用している場合、メールを送信するには時間がかかり、ユーザーは完了するまで待つ必要があります。その後、アクションが実行され、結果が表示されます。これはユーザー登録用の確認メールを送信したいから、遅い場合は登録中にユーザーが眠れなくなるため、私にとっては好ましくありません。

また、スプール戦略も使用できません。仕事で手作業で送る必要があるので(私はそうですか?)、私はそれもできません。登録後に自動的に送信される必要があるためです。

このような状況のための戦略はありますか?それは電子メールを送信するのに十分速いです(送信されるまで待つ必要はありません)

+0

はい、スプール戦略を使用している場合は、定期的にタスクを実行する必要があります。なぜそれはあなたにとって良いことではないのですか? cronを使って5分ごとに実行します。これは十分速くなければなりません。すぐに1つの電子メールを送信することもできます。 – Maerlyn

+0

ええ、あまりにも(すぐにメールを送る)それを使用しました。この戦略はあまりにも時間がかかります。なぜか分からないけど、それを送るにはあまりにも多くの時間がかかります。メール送信タスクもうまくいきますが、パフォーマンス上の問題ではないと思います。それは...ですか? – Firouziam

+0

数分ごとにタスクを実行すると、ほとんどの場合、効果的な問題ではありません。 – Maerlyn

答えて

0

私はリアルタイム戦略を使用して電子メールを送信します。電子メールは、特にシーケンスの早い段階で送信された場合、比較的早いことがわかります。私は、以下の技術を使用しました

:APIを通じて

  • GmailやSSL暗号化
  • SendGridを
  • 電子メールを送信するタスクによって掃引ます電子メールのトランザクションテーブルを使用私自身のAPI 。

私の経験上、1回の確認メールは非常に便利です。そうでなければ、私はボトルネックがどこにあるかを見るためにそのトランザクションをデバッグするための他の(コマンドライン)方法を探します。私はそのPHP、SymfonyまたはSwiftを疑う。