本文优化JavaMail发送性能的原则: 一个连接发送多个邮件
Session mailSession = Session.getDefaultInstance(props);
Transport transport = mailSession.getTransport("smtp");
transport.connect("192.168.15.85", "webmaster", "password");
for(int i=0;i<1000;i++){
message = getNewMessage(mailSession);
message.setRecipients(Message.RecipientType.TO, addresses);
transport.sendMessage(message, message.getAllRecipients());
private static Message getMessage(Session mailSession) throws Exception {
SimpleEmail email = new SimpleEmail();
email.setCharset("UTF-8");
email.setHostName("192.168.15.85");
email.setSmtpPort(25);
email.setCharset("UTF-8");
email.setFrom("12334567@ifeng.com", "凤凰网微博");
email.setTo(Arrays.asList(new InternetAddress("1111111@qq.com")));
email.setSubject("优先级测试");
email.setMsg("优先级测试");
email.setMailSession(mailSession);
email.buildMimeMessage();
return email.getMimeMessage();
}
以上代码是发送邮件常用代码。
上面的代码没有任务问题,但出现一个现象,用同一个transport发送貌似都需要重新建立到smtp服务器的链接。
而一般我们发送的邮件都是内容主题不同,接受者不同。因此
Session mailSession = Session.getDefaultInstance(props);
Transport transport = mailSession.getTransport("smtp");
transport.connect("192.168.15.85", "webmaster", "password");
Message message = null;
for(int i=0;i<100;i++){
newMessage = getNewMessage(mailSession);
if(message ==null){
message = newMessage;
}else{
message .setContent((Multipart) newMessage .getContent());
... // 用新message的subject, content, AllRecipients填充message
}
message.setRecipients(Message.RecipientType.TO, addresses);
transport.sendMessage(message, message.getAllRecipients());
这样你会发送的速度极其的快,就第一封邮件需要建立链接差不多需要100来ms,剩余的只需不到10ms。
记住:我所测试得出 一个Session只能发送100封左右邮件,因此到一百封时需要重新建立session和transport
分享到:
相关推荐
javaMail发送邮件 发送成功 收不到邮件 或收到邮件无主题无收件人乱码 查看debug 邮件处理过程发现邮件头没有编译, 内容是base64编码,所以邮箱收不到或者收到的是base64编码后的一堆乱码,
javamail发送邮件实例 javamail 发送邮件 文本编辑器 kindeditor
此源码是使用javamail发送邮件,可以实现静默发送邮件,可以发送附件资源等。有相应的使用说明,快捷好用
该资源是一个javamail发送邮件的例子,里面集成了别人的文件发送的功能,单次发送邮件只能上传一个附件。是一个测试方法,拿过来改一改邮件的地址和密码就可以使用了
javaMail
Struts2框架,javamail发送邮件,可以直接用main()调用,也可通过tomcat,在IE上运行,比较简单易懂。
JSP与JavaMail发送HTML格式... java,javamail发送html邮件..
Javamail发送邮件类库,Java发送邮件需要用到该类库
页面使用ajax上传文件,Java端采用file.Transto 来保存上传的文件,支持发送正文文本,图片,附件;图片作为附件发送,如需求图片糅合在正文文本中,只需在代码中稍加改动,有注释。
利用JavaMail发送邮件的实例,可以直接运行
javamail发送邮件的简单实例
配置好用户名密码以及SMTP服务器就可以直接运行。已包含相关jar
javamail发送邮件小程序,类以及写好,只要放包,下载一个就可以
javamail发送、接收邮件详细教程
里面详细的介绍了JavaMail发邮件(包括单个附件和多个附件)的机制,还有JavaMail正常使用所需要的JAR包,源程序例子经过本人详细且严格的测试,大家下载下来就可以直接使用啦。
javamail 发送收取邮件
完整的javamail发送邮件源码,直接能用
javamail 发送邮件 实例
利用JAVAMAIL实现的发送邮件的小例子
用到的两个包 mail.jar activation.jar 博文链接:https://seawavecau.iteye.com/blog/108929