繁体   English   中英

Symfony 1.4中的新闻通讯模块

[英]Newsletter module in Symfony 1.4

我正在网站上开发新闻稿模块,我从Symfony 1.4版本开始。 我想将我的电子邮件发送给多个收件人。

我尝试了这个简单的解决方案(使用实时投放策略):

$message = $this->getMailer()->compose();
$message->setSubject('My subject');
$message->setTo(array('email1@domain.com', 'email2@domain.com'));
$message->setFrom('expeditor@domain.com', 'Name of expeditor');
$html = $this->getPartial('module/action', array('var'=>$var));
$message->setBody($html, 'text/html');
$number = $this->getMailer()->send($message);

电子邮件已发送,但是在收件人列表中,您可以看到所有用户,而不仅仅是您...

此外,可能有很多收件人。 因此,也许我将需要一个等待列表,以避免出现最大执行时间错误?

如果可能,您可以通过示例帮助找到更好的解决方案吗?

谢谢

首先,要隐藏收件人列表,必须使用Swiftmailer的setBcc()函数而不是setTo()。 这会将电子邮件地址添加为抄送副本的收件人,这意味着它们将无法彼此“看到”。 此外,添加您自己的地址(例如noreply@domain.com)作为setTo()地址。

其次,如果仅将所有收件人添加到一封电子邮件中,则最长执行时间将不会成为问题,因为当您调用$ this-> getMailer()-> send时,它将仅连接到基础SMTP / mailer一次。 ($消息)。

不过,我建议您研究假脱机功能,因为它提供了更好的性能,并允许后台进程处理实际的电子邮件(您只需将其添加到数据库中的表中,然后等待cronjob发送邮件)。 更改上面的代码以遍历所有收件人,并为每个收件人创建一封电子邮件,然后将其添加到后台处理中。 这样,您还可以使用setTo()函数来为收件人显示正确的收件人地址。

More With Symfony一书中了解有关线轴功能的更多信息

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM