javamail程序源码

在配置JavaMail时,总是有一种有趣的方法。 基本上,您必须填写无类型的地图或属性结构,并希望获得正确的解释。 网络上无数的教程显示了使其正常工作(发送/接收邮件)所需的最小属性。

但是,正如我们痛苦地了解到的那样,您可能需要注意一些鲜为人知的属性,即套接字IO的超时设置。 默认情况下,JavaMail对所有套接字操作(连接,IO等)都使用无限超时!

现在,假设您有一簇SMTP服务器,它们可以处理通过DNS循环访问的传出邮件。 如果其中一台服务器发生故障(恰好是JavaMail想要连接的服务器),则您的邮件发送线程将永远挂起! 这正是发生在我们身上的事情,我们需要表演一些真正令人讨厌的魔术来避免悲剧。

因此,我们现在为所有操作设置超时:

String MAIL_SMTP_CONNECTIONTIMEOUT ="mail.smtp.connectiontimeout";String MAIL_SMTP_TIMEOUT = "mail.smtp.timeout";String MAIL_SMTP_WRITETIMEOUT = "mail.smtp.writetimeout";String MAIL_SOCKET_TIMEOUT = "60000"; // Set a fixed timeout of 60s for all operations - // the default timeout is "infinite"props.put(MAIL_SMTP_CONNECTIONTIMEOUT, MAIL_SOCKET_TIMEOUT);props.put(MAIL_SMTP_TIMEOUT, MAIL_SOCKET_TIMEOUT);props.put(MAIL_SMTP_WRITETIMEOUT, MAIL_SOCKET_TIMEOUT);

另外,如果您打算访问基于DNS的循环服务(例如Amazon S3)或我们的邮件集群,请不要忘记配置Java的DNS缓存tiemout(默认情况下也是无限的):

// Only cache DNS lookups for 10 seconds java.security.Security.setProperty("networkaddress.cache.ttl","10");

而且,在我们看来,将所有编码设置为UTF-8(独立于底层操作系统)以提供稳定的环境对我们来说是一个好主意:

System.setProperty("file.encoding", Charsets.UTF_8.name());
System.setProperty("mail.mime.charset", Charsets.UTF_8.name());

…您根本不想关心这样的事情吗? 随意使用我们的开源Java库SIRIUS ,它通过提供简洁的fluet API发送邮件来处理所有这些工作: GitHub上的Sources 。

可以在集群管理器中找到一个用法示例:

@Partprivate MailService ms;private void alertClusterFailure() {...ms.createEmail().useMailTemplate("system-alert", ctx).toEmail(receiver).send();...}

翻译自: https://www.javacodegeeks.com/2014/06/javamail-can-be-evil-and-force-you-to-restart-your-app-server.html

javamail程序源码

javamail程序源码_JavaMail可能是邪恶的(并迫使您重新启动应用程序服务器)相关推荐

  1. 小程序源码:老人疯狂裂变引流视频推广微信小程序-多玩法安装简单

    这是一款特别受老年人喜欢的一款小程序 内的视频内容都是老年人喜爱的,也是喜欢转发的 另外该小程序的插屏广告还是定时出现的哟 如此达到高收益 另外用户支持点击跳转下一条视频,或者下拉刷新 总得来说其实没 ...

  2. 小程序源码:修复登录接口版最新知识付费变现小程序源码下载-独立后台版本

    这个小程序是干什么的? 资源分享小程序为网络资源分享类自媒体解决变现与传播问题,小小的资源,要钱不合适,不要钱又不能用爰发电,让用户分享又没有效果,那么我们就可以让用户打开小程序,看一段广告,直接获取 ...

  3. 小程序源码:可以刷短视频的去水印工具微信小程序

    这是一个去水印小程序 支持各大平台短视频去水印 支持图集去水印 另外还有一个功能也就相当于抖音一样刷短视频 偷偷告诉你们哟,刷的短视频都是热门小姐姐哟!惊不惊喜意不意外 小程序源码下载地址:  小程序 ...

  4. 小程序源码:智力考验看成语猜古诗句微信小程序-多玩法安装简单

    这是一款猜诗句的一款小程序,特别考脑力 里面拥有低,中,高三种难度 用户通过猜所提供的成语,然后猜出是哪句古诗 当然啦下方也是会有小小提示的,比如古诗作者名字 或者古诗的名字,或者第一个字是什么等等 ...

  5. 小程序源码:随机头像大全,多分类带历史记录微信小程序源码

    这是一款头像小程序 用户可以在每一个分类随机头像 然后觉得满意可以保存到相册 支持多个分类,基本都是全了如下: 动漫头像 男生头像 女生头像 动漫男生 动漫女生 另外还支持多种流量主模式 具体大家自行 ...

  6. 教育培训学校源码微信小程序源码下载,带课件/习题/活动插件,支持小程序与公众号双版本

    这是一款超强大教育培训学校源码 内含超强大超多的功能 大家看文章末的后台管理就能知道到底有多强大了 比如功能有以下等等功能 课程功能,商城管理,多人团购,限时抢购,接龙团,砍价功能,课程团购,课程包 ...

  7. 【小程序源码】升级版王者荣耀铭文多功能助手微信小程序源码下载

    这是一个王者铭文小程序 支持每一个英雄的铭文出装推荐查看 支持铭文组合模拟数据 另外还支持游戏重复名生成和空白名生成 比之前分享的一款单一铭文好一点吧 废话不多说,下面就一起来看看小编的测试演示图吧! ...

  8. 小程序源码:升级版王者荣耀铭文多功能助手微信小程序

    这是一个王者铭文小程序 支持每一个英雄的铭文出装推荐查看 支持铭文组合模拟数据 另外还支持游戏重复名生成和空白名生成 比之前分享的一款单一铭文好一点吧 另外该款小程序还支持多种流量主模式 比如:激励视 ...

  9. 小剧场短剧影视小程序源码 全开源 带支付收益等模式 付费短剧小程序源码

    简介: 小剧场短剧影视小程序源码 全开源 带支付收益等模式 付费短剧小程序源码 多平台小程序支持 项目功能介绍 支持无限滑动 高性能滑动 预加载 视频预览 支持剧情介绍,集合壁纸另外仿抖音滑动效果 支 ...

最新文章

  1. Python 之 Numpy (三)运算
  2. c语言将源文件拷贝到目的文件,C语言编译过程 简介和详解
  3. 面向对象简单原则(转)
  4. 计算机原理期中考试答案,微机原理与接口技术期中考试题(带答案)
  5. uva 816(经典bfs例子)
  6. SAP S/4HANA Cloud 上 in-app 和 side-by-side 两种扩展方式的介绍
  7. 无法执行程序。所执行的命令为 C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe /noconfig /fullpaths @C:\W...
  8. 返回JSON出现Infinite recursion无限循环错误的解决
  9. CSS文本溢出的处理方法总结
  10. 电脑删除文件需要管理员权限怎么办
  11. java排序_Java实现九种排序算法3:插入排序之希尔排序
  12. idea 自动定位类所在目录_中国自动化学会推荐的A类和B类学术期刊目录(包含国产和外文)...
  13. Linux PTP IEEE1588使用
  14. 实用现代汉语语法笔记
  15. 台式电脑主板插线步骤图_机箱上的跳线接在主板那些位置?台式电脑主板接线示意图解教程...
  16. 写计算机课的作文,电脑课作文(小学生作文写不好怎么办)
  17. 手把手教你搭建STM32MP1开发环境
  18. 湖北智禾网络科技:新卖家前期对电商和淘宝店铺具备哪些基本的认知
  19. Windows系统实现共享文件夹——通过无账号密码方式访问
  20. React前端开发入门与实战案例

热门文章

  1. 2019-2020 ICPC Asia Hong Kong Regional Contest 补题(部分)
  2. 【DP】建学校问题(luogu 2803/2018 特长生 T3)
  3. 两年摸爬滚打 Spring Boot,总结了这 16 条最佳实践
  4. 如何使ArrayList 线程安全
  5. 为什么Netty这么火?与Mina相比有什么优势?
  6. 2017一季度JAVA面试题锦集
  7. 《四世同堂》金句摘抄(五)
  8. ps中将图片拖不进ps的编辑区的解决方法
  9. 2017蓝桥杯省赛---java---B---2(纸牌三角形)
  10. 逆波兰表达式中缀表达式转换为后缀表达式