Amazon SES(简单电子邮件服务)自称为"高度可扩展且经济高效的批量和交易电子邮件发送服务".
从我可以收集的所有内容,以及通过浏览AWS SDK以及SES指南和API,它看起来很适合交易电子邮件(即以一次性方式发送的应用程序电子邮件),但我找不到任何有关批量电子邮件的信息.
基于价格点,亚马逊显然希望/需要客户发送大量邮件.
是否期望您(作为实施Amazon SES的人)为每封电子邮件发送单独的电话?
即如果您要向200,000个收件人发送营销电子邮件,您是否真的通过curl(或其他)或使用AWS sdk向SendEmail或SendRawEmail发出200K请求?
这似乎不切实际.
我希望将个性化的批处理电子邮件发送给大量用户。我的意思是,我想设置一个模板电子邮件,然后在发送之前将每个用户的信息注入其中。
当然,这可以容易地与Laravel通过用户数据循环,并使用邮件程序(或者实现Mail门面)方法(如send,raw,queue等等):
foreach ($users as $user) {
$data = ['user' => $user];
$this->mailer->queue($views, $data, function($message) use($user) {
$message->to($user->email, $user->name);
});
}
Run Code Online (Sandbox Code Playgroud)
但是,考虑到我想发送的电子邮件数量,这对于我的需求来说太慢了。经过一些研究,我发现Mailgun支持使用其API发送个性化批处理电子邮件。从他们的网站:
批量发送
通过一个API调用,您最多可以发送1000个完全个性化的电子邮件。
Mailgun将正确组装MIME消息,并将电子邮件分别发送给每个用户。这使得发送大量电子邮件的速度大大加快,并且减少了资源消耗。
当然,我可以直接使用Mailgun的API或使用任何可用的SDK来愉快地实现此功能,但只想先检查一下Laravel是否支持它即可。
我们正在尝试使用 PHP Laravel 框架发送批量电子邮件 (100k)。使用 Laravel 队列发送批量电子邮件的正确方法是什么?
//controller
public function runQueue(){
dispatch(new ShootEmailJob());
}
//job
public function handle(){
$emails = EmailList::get(['email']);
foreach($emails as $email){
Mail::to($email)->send();
}
}
Run Code Online (Sandbox Code Playgroud)
//controller
public function runQueue(){
$emailList = EmailList::get(['email']);
foreach($emailList as $emailAddress){
dispatch(new ShootEmailJob($emailAddress->email));
}
}
//job
public function handle(){
Mail::to($emailAddress)->send(new ShootMail($emailAddress));
}
Run Code Online (Sandbox Code Playgroud)
案例 1 和案例 2 哪一种是正确的做法?
这更像是一个理论问题,因为我尊重经常访问本网站的人的意见.此外,MailChimp工作人员仍然没有回复我一周前发送的紧急电子邮件.
我担心将MailChimp用于我的网络应用程序,因为我不能允许用户在需要获取这些电子邮件时"取消订阅"某些通知.
Mandrill效果很好......但我不能用它一次向多个人播放.
这是一种合理的担心吗?有没有办法解决?必须有一个答案,可以安全地向需要此类电子邮件的会员群发送必要的批量电子邮件.
我很感激你的意见.