2010-11-23 61 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); 

電子郵件的發送,但收件人列表中你可以看到所有用戶,而不僅僅是你...

此外,可能有很多收件人。所以也許我需要一個等待列表來避免最大執行時間錯誤?

如果可能的話,你可以幫助找到更好的解決方案嗎?

謝謝

回答

1

首先,隱藏收件人列表,你必須使用Swiftmailer的setBcc()函數,而不是setTo的()。這增加了電子郵件地址作爲盲拷復員,這意味着他們將無法「看到」對方。此外,請將您自己的地址(例如[email protected])添加爲setTo()地址。

其次,如果您將所有recpients添加到一封電子郵件中,則最大執行時間將不會成爲問題,因爲當您調用$ this-> getMailer時,它只會連接到底層的SMTP /郵件程序一次) - >發送($消息)。

但是,我會建議你看看後臺功能,因爲它提供了更好的性能,並讓後臺進程負責實際的電子郵件(你只需添加到數據庫中的表中,讓它等待cronjob發送郵件)。更改上面的代碼以遍歷所有收件人,併爲每個收件人創建一封電子郵件並將其添加到假脫機郵件。這樣您也可以使用setTo()函數來爲收件人顯示正確的地址。

閱讀有關More With Symfony書中後臺功能的更多信息。

+0

謝謝你的幫助,它更好! – deodys 2010-11-23 15:26:14