java smtp.126.com_java实现邮件发送
介绍
发送邮件是一个很常见的需求,如用户注册,用户密码修改,密码找回等。今天我们看一下使用JavaSE和Spring实现发送邮件的功能。
邮件协议
SMTP协议是基于TCP/IP的一个应用层协议,类似于HTTP,全称为 Simple Mail Transfer Protocol,译作简单邮件传输协议,它定义了邮件客户端软件与SMTP 服务器之间,以及 SMTP 服务器与 SMTP 服务器之间的通信规则。我们通过邮件客户端或程序发送邮件时就用到了该协议。
而 POP3 协议全称为 Post Office Protocol ,译作邮局协议,它定义了邮件客户端与 POP3服务器之间的通信规则。我们通过邮件客户端查看邮件时就用到了该协议。
IMAP(Internet Message Access Protocol)协议是对POP3协议的一种扩展,功能更强,作用类似。
发送前准备
发送前需要获取邮箱的授权码,以网易126邮箱为例
使用JavaSE发送简单邮件
添加maven依赖
com.sun.mail
javax.mail
1.6.2
发送邮件
public class Client {
public static void main(String[] args) throws Exception {
Properties props = new Properties();
//设置邮件地址
props.put("mail.smtp.host", "smtp.126.com");
//开启认证
props.put("mail.smtp.auth", "true");
Session session = Session.getDefaultInstance(props, null);
Transport transport = session.getTransport();
//用户名
String user = "xxx@126.com";
//授权码
String password = "xxx";
transport.connect(user, password);
//创建邮件消息
MimeMessage msg = new MimeMessage(session);
msg.setSentDate(new Date());
//邮件发送人
InternetAddress fromAddress = new InternetAddress(user, "邮件服务");
msg.setFrom(fromAddress);
//邮件接收人
String to = "xxx@163.com";
InternetAddress[] toAddress = new InternetAddress[]{new InternetAddress(to)};
msg.setRecipients(Message.RecipientType.TO, toAddress);
//邮件主题
msg.setSubject("测试邮件发送", "UTF-8");
//邮件内容和格式
msg.setContent("this is a test mail", "text/html;charset=UTF-8");
msg.saveChanges();
//发送
transport.sendMessage(msg, msg.getAllRecipients());
}
}
发送带附件的邮件
public class Client {
public static void main(String[] args) throws Exception {
Properties props = new Properties();
//设置邮件地址
props.put("mail.smtp.host", "smtp.126.com");
//开启认证
props.put("mail.smtp.auth", "true");
Session session = Session.getDefaultInstance(props, null);
Transport transport = session.getTransport();
//用户名
String user = "xxx@126.com";
//授权码
String password = "xxx";
transport.connect(user, password);
//创建邮件消息
MimeMessage msg = new MimeMessage(session);
msg.setSentDate(new Date());
//邮件发送人
InternetAddress fromAddress = new InternetAddress(user, "邮件服务");
msg.setFrom(fromAddress);
//邮件接收人
String to = "xxx@163.com";
InternetAddress[] toAddress = new InternetAddress[]{new InternetAddress(to)};
msg.setRecipients(Message.RecipientType.TO, toAddress);
//邮件主题
msg.setSubject("测试邮件发送", "UTF-8");
//内容和附件
Multipart multipart = new MimeMultipart();
//内容
BodyPart contentBodyPart = new MimeBodyPart();
contentBodyPart.setContent("this also is a test mail", "text/html;charset=UTF-8");
multipart.addBodyPart(contentBodyPart);
//附件
BodyPart fileBody = new MimeBodyPart();
DataSource source = new FileDataSource("D:/a.png");
fileBody.setDataHandler(new DataHandler(source));
fileBody.setFileName("测试附件.png");
multipart.addBodyPart(fileBody);
//邮件内容
msg.setContent(multipart);
msg.saveChanges();
//发送
transport.sendMessage(msg, msg.getAllRecipients());
}
}
使用Spring发送简单邮件
spring在原有的基础上又封装了一层,简化了开发。
org.springframework
spring-context-support
5.1.2.RELEASE
com.sun.mail
javax.mail
1.6.2
public class Client {
public static void main(String[] args) throws Exception {
JavaMailSender mailSender = createJavaMailSender();
//创建邮件消息
MimeMessage mimeMessage = mailSender.createMimeMessage();
MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage);
//发送人
messageHelper.setFrom("xxx@126.com", "邮件服务");
//收件人
messageHelper.setTo("xxx@163.com");
//主题
messageHelper.setSubject("测试邮件发送");
//发送时间
messageHelper.setSentDate(new Date());
//发送内容
messageHelper.setText("this is a test mail by spring");
mailSender.send(mimeMessage);
}
private static JavaMailSender createJavaMailSender() {
JavaMailSenderImpl mailSender = new JavaMailSenderImpl();
mailSender.setDefaultEncoding(StandardCharsets.UTF_8.name());
String username = "xxx@126.com";
//设置用户名
mailSender.setUsername(username);
//设置授权码
mailSender.setPassword("xxx");
Properties props = new Properties();
//设置邮件地址
props.put("mail.smtp.host", "smtp.126.com");
//开启认证
props.put("mail.smtp.auth", "true");
mailSender.setJavaMailProperties(props);
return mailSender;
}
}
使用Spring发送带附件的邮件
public class Client {
public static void main(String[] args) throws Exception {
JavaMailSender mailSender = createJavaMailSender();
//创建邮件消息
MimeMessage mimeMessage = mailSender.createMimeMessage();
//multipart为true表示可以带附件
MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage, true);
//发送人
messageHelper.setFrom("xxx@126.com", "邮件服务");
//收件人
messageHelper.setTo("xxx@163.com");
//主题
messageHelper.setSubject("测试邮件发送");
//发送时间
messageHelper.setSentDate(new Date());
//发送内容
messageHelper.setText("this is a test mail by spring");
//添加附件
messageHelper.addAttachment("测试附件.png", new FileDataSource("D:/a.png"));
mailSender.send(mimeMessage);
}
private static JavaMailSender createJavaMailSender() {
JavaMailSenderImpl mailSender = new JavaMailSenderImpl();
mailSender.setDefaultEncoding(StandardCharsets.UTF_8.name());
String username = "xxx@126.com";
//设置用户名
mailSender.setUsername(username);
//设置授权码
mailSender.setPassword("xxx");
Properties props = new Properties();
//设置邮件地址
props.put("mail.smtp.host", "smtp.126.com");
//开启认证
props.put("mail.smtp.auth", "true");
mailSender.setJavaMailProperties(props);
return mailSender;
}
}
java smtp.126.com_java实现邮件发送相关推荐
- java smtp.126.com_Java Mail---SMTP、POP3协议-DOS下手动收发邮件演示过程
转载请注明出处: http://blog.csdn.net/qq_26525215 本文源自 E-Mail协议简介: 邮件服务器,按照提供的服务类型,可以分为发送邮件的服务器我接收邮件的服务器. 发送 ...
- java smtp.126.com_Java采用SMTP协议发送邮件 | 学步园
下载后解压,将mail.jar和activation.jar放到project里的lib文件夹中,为其配置环境变量,或在myEclipse里的"Java Build Path"中将 ...
- java 发送邮件添加附件,Java实现带附件的邮件发送功能
这篇文章主要为大家详细介绍了Java实现带附件的邮件发送功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 本文实例为大家分享了Java实现邮件发送功能的具体代码,供大 ...
- Java实现多附件的邮件发送
叙:本文主要记述了 Springboot 中如何集成并实现多附件的邮件发送,以QQ邮箱的服务器为发送邮件的邮件服务器: Java实现多附件的邮件发送 1.前期准备 1.1.获取收发服务器地址及其端口号 ...
- qq邮箱格式的Java代码_Java实现QQ邮件发送
首先我们需要两个jar包,点击下面即可下载这两个包: 我们这里采用QQ邮箱发送邮件为例,代码如下: package ddd; import java.util.Properties; import j ...
- Java技术:SpringBoot实现邮件发送功能
邮件发送功能基本是每个完整业务系统要集成的功能之一,今天小编给大家介绍一下SpringBoot实现邮件发送功能,希望对大家能有所帮助! 今天主要给大家分享简单邮件发送.HTML邮件发送.包含附件的邮件 ...
- java 发送邮件_Jenkins实现自动化邮件发送踩坑记录
文章简介 本文分享Jenkins实现邮件发送,安装Jenkins可参考jenkins安装.写这篇文章,是在实际使用Jenkins过程中遇到这样一个问题,当每次Jenkins构建成功或者失败后,需要个人 ...
- java mail 抄送多用户_javaMail邮件发送功能(多收件人,多抄送人,多密送人,多附件)...
先看源码,再来理解,可以直接使用! JavaMailWithAttachment.java: private MimeMessage message; private Session session; ...
- java邮件发送代码_用Java实现最简单的邮件发送代码
1. import javax.mail.Authenticator; import javax.mail.PasswordAuthentication; /* * 在真正使用创建的过程中,往往会让我 ...
- java EE 5配置邮件发送 qq企业邮箱
为什么80%的码农都做不了架构师?>>> java EE 5配置QQ企业邮件发送 1.在项目的WebRoot/META-INF/新建context.xml 具体内容如下: &l ...
最新文章
- 为什么校招面试中总被问“线程与进程的区别”?我该如何回答?
- 自定义栈-pop-push-min-时间复杂度都为O(1)
- Android中怎样使用Navicat可视化查看sqllite的数据库(查看db文件)
- 华南理工大学 高级程序设计语言 c++ ,2017华南理工大学网络教育《高级语言程序设计C++》平时作业...
- 错误fatal error: curl/curl.h: No such file or directory解决方案
- 程序员必收藏的五个网站
- Exchange2010恢复已禁用邮箱后用户登录会出错
- rust面向对象_面向初学者的Rust操作员综合教程
- 【转】chrome浏览器的跨域设置——包括版本49前后两种设置
- QT学习笔记(八):顺序容器和关联容器
- SecureCRT终端仿真程序下载及安装使用
- 转的,程序员如何缓解压力
- 你觉得一个128g主力机用几年会到非换不可的程度?
- Kafka在Linux下载安装及部署
- 基于销售数据的决策支持系统的设计与实现源码论文
- FPGA零基础学习:UART协议驱动设计
- 笔记本安装PCMCIA并口卡
- 前端应届简历应该怎么写?
- quartz表删除顺序
- 拷贝控制示例——Message和Folder