今天在做MailBee系列产品的时候,想起了2014年去面试的时候被一个面试官问的很难堪的场面。
一般小型的系统我推荐用自建的smtp邮件推送,日推1000封还是没有问题的;如果是小型网站需要更多的推送量,那么可以考虑用阿里云的推送接口。
/**
* 阿里云云通信发送短息 2017
* @param string $mobile 接收手机号
* @param string $tplCode 短信模板ID
* @param array $tplParam 短信内容
* @return array
*/
function sendMsg($mobile, $tplCode, $tplParam)
{
require_once '../extend/aliyunsms/vendor/autoload.php';
Config::load(); //加载区域结点配置
$accessKeyId = config('alisms_appkey');
$accessKeySecret = config('alisms_appsecret');
$templateParam = $tplParam; //模板变量替换
$signName = config('alisms_signname');
//短信模板ID
$templateCode = $tplCode;
$product = "Dysmsapi";
$domain = "dysmsapi.aliyuncs.com";
$region = "cn-hangzhou";
$profile = DefaultProfile::getProfile($region, $accessKeyId, $accessKeySecret);
// 增加服务结点
DefaultProfile::addEndpoint("cn-hangzhou", "cn-hangzhou", $product, $domain);
// 初始化AcsClient用于发起请求
$acsClient = new DefaultAcsClient($profile);
$request->setPhoneNumbers($mobile);
$request->setSignName($signName);
// 必填,设置模板CODE
$request->setTemplateCode($templateCode);
// 可选,设置模板参数
if ($templateParam) {
$request->setTemplateParam(json_encode($templateParam));
}
//发起访问请求
$acsResponse = $acsClient->getAcsResponse($request);
saveSendlog('sms', $mobile, $json_encode($acsResponse));
$result = json_decode(json_encode($acsResponse), true);
return $result;
}
当然以上都是常规做法,那么遇到企业级、平台级每天要发送上万邮件出去的好方法请继续往下看!


MailBee.NET Objects 是企业级分发量创建、发送、接收、处理电子邮件的.NET控件。具备“必需”以及独特的功能,这些控件帮助开发人员简单快速地将复杂的电子邮件功能添加到他们的应用程序中。集成难度0颗星,如上图所示!
但是如果遇到一次性要发送10000封邮件出去怎么办?loading图表恐怕得转上一阵子吧。

MailBee.NET Queue是一款基于队列的电子邮件发送系统,该系统依靠它的运载工具能够更加快速的发送电子邮件,因为它们不用再等待电子邮件的发送,当您的应用程序一次发送多条消息时,该控件尤其重要。
-
MailBee.NET Queuene依靠它的运载工具能够更加快速的发送电子邮件,需要注意的是它不是实际的发送电子邮件,你的应用程序可以让所有的电子邮件变成.eml文件然后发送到一个特定的文件夹,MailBee.NET Queue让所有邮件先暂存。
-
在文件内部,MailBee.NET Queue的服务器将时刻监视着待发文件夹,待所有的待发邮件成为.eml文件之后,就把它们发送出去,当然这个特定的文件夹是通过SMTP服务器来发送的。
-
MailBee.NET Queue支持SMTP-over-SSL。并且支持多线程来大大改进邮件的发送性能。
-
可以使用任何.NET语言来告诉MailBee.NET Queue使用多个中继SMTP服务器来进行更好的吞吐量,当然如果直接发送到目的地MX服务器时,如果SMTP中继服务器出现故障,那么就可以限制电子邮件的数量用单个SMTP来发送。
-
要运行MailBee.NET Queue ,你需要一个有效的MailBee.NET SMTP许可证密钥。
-
由于整个源代码都是开放的,您还可以使用MailBee.NET Queue来率先传送大型邮件。
另外如果你遇到的是搭建企业级邮件分发系统那么也不用尴尬,MailBee有多款针对性的【控件】,支持.NET和PHP。感兴趣的话可以点这里去看一看。
本文介绍了如何使用MailBee.NET Objects和MailBee.NET Queue控件来构建高效的企业级邮件发送系统。MailBee.NET Queue通过队列机制和SMTP-over-SSL支持,能快速大量发送邮件,提高邮件发送性能,并提供源代码开放,适用于.NET和PHP环境。

被折叠的 条评论
为什么被折叠?



