2010-11-23 8 views
0

私は自分のウェブサイトでニュースレターモジュールを開発しています。私はSymfony 1.4バージョンから始めます。 複数の受信者にメールを送信したいと思います。Symfony 1.4のニュースレターモジュール

私は(リアルタイム配信戦略に)この単純な解決策を試してみました:

$message = $this->getMailer()->compose(); 
$message->setSubject('My subject'); 
$message->setTo(array('[email protected]', '[email protected]')); 
$message->setFrom('[email protected]', 'Name of expeditor'); 
$html = $this->getPartial('module/action', array('var'=>$var)); 
$message->setBody($html, 'text/html'); 
$number = $this->getMailer()->send($message); 

電子メールが...

を送ったが、受信者のリストにすべてのユーザーだけでなく、あなたを見ることができますさらに、多くの受信者がいる可能性があります。だから多分私は最大実行時間のエラーを避けるために待機リストが必要になりますか?

可能であれば、より良い解決策を見つけることができますか?

あなたはではSwiftMailerの代わりに、setTo(のsetBcc()関数)を使用する必要があり、受信者のリストを非表示にするには、

答えて

1

まずありがとうございます。これにより、電子メールアドレスがブラインドカーボンコピーのrepicientsとして追加されます。つまり、お互いを「見る」ことができなくなります。さらに、独自のアドレス(たとえば[email protected])をsetTo()アドレスとして追加します。

第2に、$ this-> getMailerを呼び出したときに、一度だけ基本SMTP /メーラーに接続するため、すべての受信者を1つの電子メールに追加すると、最大実行時間は問題にはなりません) - > send($ message)です。

しかし、スプールの機能を見ると、パフォーマンスが大幅に向上し、バックグラウンドプロセスで実際の電子メールが処理されます(データベースのテーブルに追加するだけで、メールを送るcronjob)。上記のコードをすべての受信者をループするように変更し、受信者ごとに1つの電子メールを作成してスプールに追加します。このようにして、setTo()関数を使用して受信者に対して正しい宛先アドレスを表示することもできます。

More With Symfony本のスプール機能の詳細をご覧ください。

+0

ご協力いただきありがとうございます。 – deodys

関連する問題