展开全部

package com.gpt.util.email;

import java.io.FileOutputStream;

import java.util.List;

import java.util.Properties;

import javax.activation.DataHandler;

import javax.activation.FileDataSource;

import javax.mail.Message;

import javax.mail.Session;

import javax.mail.Transport;

import javax.mail.internet.InternetAddress;

import javax.mail.internet.MimeBodyPart;

import javax.mail.internet.MimeMessage;

import javax.mail.internet.MimeMultipart;

import com.gpt.util.PropertiesUtil;

/**

*

* Java邮件发送类,使用javaMail类进行邮件发送

* by CKQ

* */

public class MailUtil {

//邮件服务器

private static String mail_host=(String)PropertiesUtil.getMap().get("mail_host");//"smtp.yeah.net";

//邮件服务器端口

private static int port=Integer.valueOf((String)PropertiesUtil.getMap().get("mail_port"));//25;

//邮件协e69da5e887aa3231313335323631343130323136353331333363396336议

private static String mail_transport_protocol=(String)PropertiesUtil.getMap().get("mail_transport_protocol");//"smtp";

//需要smtp验证

private static String mail_smtp_auth=(String)PropertiesUtil.getMap().get("mail_smtp_auth");//"true";

//发送人用户名

private static String username=(String)PropertiesUtil.getMap().get("mail_username");//"wujianhui321@yeah.net";

//发送人密码

private static String password=(String)PropertiesUtil.getMap().get("mail_password");//"xxxxxx";

//发送纯文本邮件

public static boolean sendSimpleMail(String from,String to,String subject,String content) {

boolean result=true;

try {

Properties prop=new Properties();

prop.setProperty("mail.host", mail_host);

prop.setProperty("mail.transport.protocol", mail_transport_protocol);

prop.setProperty("mail.smtp.auth", mail_smtp_auth);

//经验证qq邮箱需要添加一下两条记录,否则失败,其他暂时不知道,这是安全协议所需要的类 add by CKQ 2017-7-19

prop.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");

prop.setProperty("mail.smtp.socketFactory.port", String.valueOf(port));

Session session=Session.getInstance(prop);

//设置为debug模式 ,生产环境应该关掉

session.setDebug(true);

//获得transport对象

Transport ts=session.getTransport();

//连上邮件服务器

ts.connect(mail_host,port, username,password);

//创建邮件

MimeMessage message=new MimeMessage(session);

//设置发送人

message.setFrom(new InternetAddress(from));

//设置接收人

message.setRecipient(javax.mail.Message.RecipientType.TO, new InternetAddress(to));

//设置主题

message.setSubject(subject);

//设置内容

message.setContent(content,"text/html;charset=UTF-8");

//发送邮件

ts.sendMessage(message, message.getAllRecipients());

//关闭连接

ts.close();

} catch (Exception e) {

e.printStackTrace();

result=false;

}

return result;

}

//发送带图片的邮件

public static boolean sendImageMail(String from,String to,String subject,String absoluteImagePath) throws Exception{

boolean result=true;

try {

//获取图片后缀

String suffix=absoluteImagePath.substring(absoluteImagePath.lastIndexOf(".")+1,absoluteImagePath.length()) ;

//定义contentId,图片到达邮件服务器后会有一个contentId,然后html中可以引用这个contentId显示该图片。

String contentId="1."+suffix;

//内容模板

String content="带图片的邮件";

Properties prop=new Properties();

prop.setProperty("mail.host", mail_host);

prop.setProperty("mail.transport.protocol", mail_transport_protocol);

prop.setProperty("mail.smtp.auth", mail_smtp_auth);

Session session=Session.getInstance(prop);

//设置为debug模式 ,生产环境应该关掉

session.setDebug(true);

//获得transport对象

Transport ts=session.getTransport();

//连上邮件服务器

ts.connect(mail_host,port, username,password);

//创建邮件

MimeMessage message=new MimeMessage(session);

//设置发送人

message.setFrom(new InternetAddress(from));

//设置接收人

message.setRecipient(javax.mail.Message.RecipientType.TO, new InternetAddress(to));

//设置标题

message.setSubject(subject);

//创建正文

MimeBodyPart text=new MimeBodyPart();

//设置内容

text.setContent(content,"text/html;charset=UTF8");

//创建一个图片

MimeBodyPart image=new MimeBodyPart();

//从本地absoluteImagePath文件读取

DataHandler dh=new DataHandler(new FileDataSource(absoluteImagePath));

image.setDataHandler(dh);

//设置图片的contentId

image.setContentID(contentId);

//创建容器描述数据关系

javax.mail.internet.MimeMultipart mm=new MimeMultipart();

//容器添加内容

mm.addBodyPart(text);

//容器添加图片

mm.addBodyPart(image);

mm.setSubType("related");

message.setContent(mm);

message.saveChanges();

//存储创建的邮件

message.writeTo(new FileOutputStream("F:/imagemail.eml"));

ts.sendMessage(message, message.getAllRecipients());

ts.close();

} catch (Exception e) {

e.printStackTrace();

result=false;

}

return result;

}

//发送带附件的邮件

public static boolean sendAttachMail(String from,String to,String subject,String content,List absoluteFilePathList) throws Exception{

boolean result=true;

try {

Properties prop=new Properties();

prop.setProperty("mail.host", mail_host);

prop.setProperty("mail.transport.protocol", mail_transport_protocol);

prop.setProperty("mail.smtp.auth", mail_smtp_auth);

Session session=Session.getInstance(prop);

//设置为debug模式 ,生产环境应该关掉

//session.setDebug(true);

//获得transport对象

Transport ts=session.getTransport();

//连接邮件服务器

ts.connect(mail_host,port, username,password);

//创建邮件

MimeMessage message=new MimeMessage(session);

//设置发送人

message.setFrom(new InternetAddress(from));

//设置接收人

message.setRecipient(Message.RecipientType.TO, new InternetAddress(to));

//设置主题

message.setSubject(subject);

//创建正文

MimeBodyPart text=new MimeBodyPart();

//设置正文内容

text.setContent(content,"text/html;charset=UTF-8");

//创建容器描述关系

MimeMultipart mp=new MimeMultipart();

//添加正文

mp.addBodyPart(text);

for(int i=0;i

//创建附件

MimeBodyPart attach=new MimeBodyPart();

DataHandler dh=new DataHandler(new FileDataSource(absoluteFilePathList.get(i)));

attach.setDataHandler(dh);

attach.setFileName(dh.getName());

//容器添加附件

mp.addBodyPart(attach);

}

mp.setSubType("mixed");

message.setContent(mp);

message.saveChanges();

//保存邮件至F盘

message.writeTo(new FileOutputStream("F:/attachMail.eml"));

ts.sendMessage(message, message.getAllRecipients());

ts.close();

} catch (Exception e) {

e.printStackTrace();

result=false;

}

return result;

}

}

追问

兄弟你没发完啊

已赞过

已踩过<

你对这个回答的评价是?

评论

收起

java邮箱发送_java邮箱发送报错相关推荐

  1. java邮件发送报错: Couldn‘t connect to host, port: smtp.exmail.qq.com, 25; timeout -1

    java邮件发送报错: Couldn't connect to host, port: smtp.exmail.qq.com, 25; timeout -1 1,发送邮件代码 2,报错原因 1,发送邮 ...

  2. 阿里短信发送报错 InvalidTimeStamp.Expired

    InvalidTimeStamp.Expired : Specified time stamp or date value is expired. 阿里短信发送报错 原因分许 解决方法 阿里短信发送报 ...

  3. java企业邮箱发送_java使用网易163企业个性域名邮箱发送邮件教程

    本文作者具有著作权,转载前倾注明来源:留在青山的博客 在我的很久之前的一篇博文里,我使用简单的代码 实现了java发送126邮箱邮件的功能,但是今天我自己注册了一个个性化的域名,我想通过我自己的域名邮 ...

  4. Java文件如何用qq邮箱发送_java中怎么发送复杂的邮件?在QQ邮箱中怎么操作?

    上次我们已经介绍过,如何实现纯文本发送邮件.今天再来为大家介绍下,在java中怎么发送复杂的邮件,以及在QQ邮箱中的具体操作流程. 首先我们来了解一下,MIME(多用途互联网邮件扩展类型).它分为两类 ...

  5. 如何使用Java来发送企业邮箱,并设计收到邮件的样式

    最近再给公司写一个发送邮件的系统,收到同事反馈说收到的默认样式太丑了,于是我钻研了一下,设计了一下自己的邮箱前端样式,于是特此写下这篇文章 一.搭建环境 相信大家也在其余的博客中学习到了怎么使用qq邮 ...

  6. Java邮件发送QQ邮箱带附件

    添加依赖 <!-- https://mvnrepository.com/artifact/javax.mail/mail --><dependency><groupId& ...

  7. java 邮件发送_Java 基于JavaMail的邮件发送

    http://blog.csdn.net/xietansheng/article/details/51673073 http://blog.csdn.net/xietansheng/article/d ...

  8. android将拦截短信通过邮箱发送,网易邮箱Android客户端推出 加速布局移动互联网...

    继网易邮箱5.0版本发布后,网易邮件事业部又迅速推出重要的移动互联网战略产品--网易邮箱Android客户端.此前,网易在移动端上已陆续推出适配iPhone/iPad/Android系统的网页版智能邮 ...

  9. java中邮箱发送_java实现邮箱发送(java mail)

    导包:mail.jar import java.util.Properties; import javax.mail.Message; import javax.mail.Message.Recipi ...

最新文章

  1. PCB常见的拓扑结构 (转)
  2. win7删除桌面文件后手动刷新才会消失的解决方法
  3. python 学习手册重点
  4. 挂了三次科目二的我,竟被一台智能车征服 | 威马W6停车挑战
  5. 修改Win7远程桌面端口
  6. 将多张图片转成gif
  7. 添加css单词换行连字符
  8. 网站技术架构发展之我见--[引子]
  9. html如何加入浮动客服,css如何实现客服悬浮效果
  10. 读论文 + 总结 + 笔记
  11. HBuilderX连接安卓模拟器
  12. 《岳阳楼记》古文鉴赏
  13. uniapp 获取到当前位置信息显示在地图上
  14. 有趣的表情包购物网站
  15. 通达信指标函数说明大全(2014)(转)
  16. Android打开QQ临时会话和打开群聊
  17. 基于JAVA二次元文化网站计算机毕业设计源码+系统+lw文档+部署
  18. 通过itextpdf操作PDF,动态向PDF文件最后一页添加图片
  19. java毕业设计——基于java+Socket+sqlserver的办公自动化系统设计与实现(毕业论文+程序源码)——办公自动化系统
  20. 软件需求分析课堂讨论01

热门文章

  1. Leetcode.912 排序数组
  2. python cron_cron表达式
  3. html倒计时代码执行操作,JS实现十分钟倒计时代码实例
  4. android 拷贝list,Android开发实践:拷贝assets到sdcard
  5. VPN突然用不了了咋回事
  6. unity 畸变_摄像机成像、畸变模型
  7. Uncaught Error: Script error for popper.js, needed by: bootstrap 解决方案
  8. poi导出excel,行相同数据自动合并单元格
  9. domContentLoaded事件和onload事件
  10. 2011年国外最受欢迎的15个交友网站