一种邮件发送方法及装置的制造方法_2

文档序号:8265521阅读:来源:国知局
接收邮 箱账号发送邮件。
[0041] 实施例二
[0042] 图2是根据本申请实施例二的邮件发送方法的流程图,如图2所示,该方法至少可 以包括:
[0043] 步骤S201,将接收到的邮件发送请求加入邮件发送队列。
[0044] 具体而言,可以将接收到的邮件发送请求加入Redis邮件发送队列,Redis是一个 开源的key-value存储系统,支持多种数据类型,其中的list是有序列表结构,利用其特性 可以把Redis的list结构作为队列来使用,由于Redis中的操作都是原子操作,因此,使用 Redis邮件发送队列可以避免并发的发送行为。
[0045] 步骤S202,获取所述邮件发送队列中当前待发送的邮件发送请求。
[0046] 具体而言,加入邮件发送队列中的邮件发送请求会按照一定的顺序进行排队,即, 待发送的邮件发送请求的发送顺序,因此,可以按照发送顺序(队列中邮件发送请求的排 队顺序)获取邮件发送队列中当前待发送的邮件发送请求,即按照发送顺序排在最前的邮 件发送请求,在Redis邮件发送队列中,将待发送的邮件发送请求加入队列时,可以从右侧 推入队列,最先发送的邮件发送请求排在队列尾端,因此,在Redis邮件发送队列中可以从 队列尾端取出当前待发送的邮件发送请求。
[0047] 步骤S203,从多个邮件发送账号中确定用于发送当前待发送的邮件发送请求的发 送账号。
[0048] 具体而言,可以根据所述多个邮件发送账号对应的服务器的权重和已发送的邮件 发送请求数,确定用于发送当前待发送的邮件发送请求的发送账号,也就是说,根据所述多 个邮件发送账号各自对应的服务器的权重和已发送的邮件发送请求数,确定对当前待发送 的邮件发送请求进行发送的最佳发送服务器,再获取该最佳发送服务器对应的邮件发送账 号。
[0049] 更具体而言,可以根据所述多个邮件发送账号对应的服务器的权重和已发送的邮 件发送请求数,利用WLC算法(Weighted Least Connection,权重最少连接算法)确定对当 前待发送的邮件发送请求进行发送的发送服务器。
[0050] 利用WLC算法,通过如下方式可以确定一组服务器S = {SO, SI,. . .,Sn-Ι}中,对 当前的邮件发送请求进行发送的最佳发送服务器Sm :
[0051] W(Si)表示服务器Si的权值,C(Si)表示服务器Si的已发送的邮件发送请求数。 所有服务器当前已发送的邮件发送请求数的总和为CSUM = ΣC(Si) (i = 0, 1,…,n-1)。
[0052] 当且仅当满足以下条件时,服务器Sm可以确定为当前待发送的邮件发送请求的 发送服务器:
[0053] (C(Sm)/CSUM)/W (Sm) = min {(C(Si)/CSUM)/W(Si)} (i = 0, 1,…,n-1)
[0054] (1)
[0055] 其中,W(Si)不为零;
[0056] 因为CSUM可认为常数,所以上述判断条件可以简化为:
[0057] C (Sm)/W(Sm) = min {C (Si)/W(Si)} (i = 0, 1,…,n_l) (2)
[0058] 根据上式(2),权值和已发送的邮件发送请求数地比值最小的服务器为最佳发送 服务器,该服务器下的邮件发送账号可以确定为当前待发送的邮件发送请求的发送账号, 因此,根据所述多个邮件发送账号对应的服务器的权重和已发送的邮件发送请求数,确定 用于发送当前待发送的邮件发送请求的发送账号,可以进一步包括:将所述多个邮件发送 账号中,所对应的服务器的权重与已发送的邮件发送请求数的比值最小的邮件发送账号, 确定为当前待发送的邮件发送请求的发送账号。
[0059] 进一步地,由于W(Si)不为零,则可以得到服务器Sm作为最佳发送服务器所需满 足的判断条件为:
[0060] C(Sm) /ff (Sm)<C (Si)/ff (Si) (3)
[0061] 由于服务器的权值都大于零,所以上述判断条件可以进一步表示为:
[0062] C(Sm) *ff (Si)<C (Si)^ff(Sm)) (4)
[0063] Sm和Si都为S = {SO, SI, ...,Sn-1}中的服务器,因此,利用上述判断条件⑷确 定当前待发送的邮件发送请求的发送服务器的执行过程实际上是一个双重循环的流程,最 终得到一个最佳的发送服务器Sm,其对应的发送账号可以被确定为当前待发送的邮件发送 请求的发送账号。
[0064] 通过上述的权重最少连接算法,可以地根据服务器的权值和当前已经发送的邮件 发送请求数,确定对当前待发送的邮件发送请求的最佳发送服务器进而确定多个发送账号 中当前待发送的邮件发送请求的发送账号,能够实现动态账号切换,防止邮箱服务器对同 一个账号的多频度发送行为的限制。
[0065] 步骤S204,通过所述发送账号,将所述邮件发送请求发送到接收邮箱账号对应的 邮件服务器,以请求所述邮件服务器根据所述邮件发送请求向所述接收邮箱账号发送邮 件。
[0066] 也就是说,通过该确定的发送账号将当前待发送的邮件发送请求发送到接收邮箱 账号对应的邮件服务器,该对应的邮件服务器接收到该邮件发送请求后,根据该邮件发送 请求中包含的邮件标题、接收邮箱账号、邮件正文、附件以及邮件编码格式等向所述接收邮 箱账号发送邮件。
[0067] 在实际执行时,可以先获取该确定的发送账号的邮箱配置,根据所述邮箱配置登 录所述发送账号,再将所述邮件发送请求发送到接收邮箱账号对应的邮件服务器,以请求 该邮件服务器根据该邮件发送请求向该接收邮箱账号发送邮件。其中,所述邮箱配置包括: 账号、服务器地址、端口、密码。例如,该邮箱配置可以包括:发送账号、发送账号的SMTP地 址、SMTP的账号、SMTP的端口以及SMTP的密码,可以根据上述邮箱配置信息登录邮箱,使用 该邮箱对当前待发送的邮件发送请求进行发送。
[0068] 步骤S205,接收所述邮件服务器返回的发送结果。
[0069] 邮件服务器根据该当前待发送的邮件发送请求向接收邮箱账号发送邮件后,可以 通过发送状态码,返回发送结果。具体发送结果可以参照如表1所示的状态码表:
【主权项】
1. 一种邮件发送方法,其特征在于,包括: 将接收到的邮件发送请求加入邮件发送队列; 获取所述邮件发送队列中当前待发送的邮件发送请求; 从多个邮件发送账号中确定用于发送当前待发送的邮件发送请求的发送账号; 通过所述发送账号,将所述邮件发送请求发送到接收邮箱账号对应的邮件服务器,以 请求所述邮件服务器根据所述邮件发送请求向所述接收邮箱账号发送邮件。
2. 根据权利要求1所述的方法,其特征在于,所述邮件发送请求中包含:邮件标题、接 收邮箱账号、邮件正文、附件以及邮件编码格式。
3. 根据权利要求1所述的方法,其特征在于,从多个邮件发送账号中确定用于发送当 前待发送的邮件发送请求的发送账号,包括: 根据所述多个邮件发送账号对应的服务器的权重和已发送的邮件发送请求数,确定用 于发送当前待发送的邮件发送请求的发送账号。
4. 根据权利要求3所述的方法,其特征在于,根据所述多个邮件发送账号对应的服务 器的权重和已发送的邮件发送请求数,确定用于发送当前待发送的邮件发送请求的发送账 号,进一步包括: 将所述多个邮件发送账号中,所对应的服务器的权重与已发送的邮件发送请求数的比 值最小的邮件发送账号,确定为用于发送当前待发送的邮件发送请求的发送账号。
5. 根据权利要求1所述的方法,其特征在于,通过所述发送账号,将所述邮件发送请求 发送到接收邮箱账号对应的邮件服务器,包括: 获取所述发送账号对应的邮箱配置,根据所述邮箱配置登录所述发送账号,将所述邮 件发送请求发送到接收邮箱账号对应的邮件服务器,所述邮箱配置包括:账号、服务器地 址、端口、密码。
6. -种邮件发送装置,其特征在于,包括: 加入模块,用于将接收到的邮件发送请求加入邮件发送队列; 获取模块,用于获取所述邮件发送队列中当前待发送的邮件发送请求; 确定模块,用于从多个邮件发送账号中确定用于发送当前待发送的邮件发送请求的发 送账号; 发送模块,用于通过所述发送账号,将所述邮件发送请求发送到接收邮箱账号对应的 邮件服务器,以请求所述邮件服务器根据所述邮件发送请求向所述接收邮箱账号发送邮 件。
7. 根据权利要求6所述的装置,其特征在于,所述邮件发送请求中包含:邮件标题、接 收邮箱账号、邮件正文、附件、以及邮件编码格式。
8. 根据权利要求6所述的装置,其特征在于,所述确定模块,进一步用于: 根据所述多个邮件发送账号对应的服务器的权重和已发送的邮件发送请求数,确定用 于发送当前待发送的邮件发送请求的发送账号。
9. 根据权利要求8所述的装置,其特征在于,所述确定模块,进一步用于: 将所述多个邮件发送账号中所对应的服务器的权重与已发送的邮件发送请求数的比 值最小的邮件发送账号,确定为用于发送当前待发送的邮件发送请求的发送账号。
10. 根据权利要求6所述的装置,其特征在于,所述发送模块,包括: 获取子模块,用于获取所述发送账号对应的邮箱配置; 发送子模块,用于根据所述邮箱配置登录所述发送账号,将所述邮件发送请求发送到 接收邮箱账号对应的邮件服务器,所述邮箱配置包括:账号、服务器地址、端口、密码。
【专利摘要】本申请提供一种邮件发送方法及装置,该方法包括:将接收到的邮件发送请求加入邮件发送队列;获取所述邮件发送队列中当前待发送的邮件发送请求;从多个邮件发送账号中确定用于发送当前待发送的邮件发送请求的发送账号;通过所述发送账号,将所述邮件发送请求发送到接收邮箱账号对应的邮件服务器,以请求所述邮件服务器根据所述邮件发送请求向所述接收邮箱账号发送邮件。采用本申请,将接收到的邮件发送请求加入邮件发送队列,可在发送时依次从队列中取出当前待发送的邮件发送请求,避免并发的发送行为。在预设的多个邮件发送账号中确定用于发送当前待发送的邮件发送请求的最佳发送账号,防止邮箱服务器对同一账号的多频度发送行为的限制。
【IPC分类】H04L12-58
【公开号】CN104579922
【申请号】CN201410831989
【发明人】孙文扬, 薛伟, 孙德彪, 牛现鲁, 胡二彪
【申请人】乐视网信息技术(北京)股份有限公司
【公开日】2015年4月29日
【申请日】2014年12月26日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1