JAVA实现发送电子邮件
相信大家对于网站也好,手机app也好,用户注册时,需要进行邮箱验证的功能特别好奇吧,本篇我将带领大家一起实现一下这个简单而又神奇的小功能,让我们的应用也可以加入这些神奇的元素。废话不多说,下面开始我们今天的内容介绍。
首先实现上面的功能,需要一个固定的发送电子邮件的邮箱地址,这里我们就以我们经常使用的QQ邮箱为例实现一下这个功能。
第一件事,你需要开启QQ邮箱的IMAP/SMAP服务:
登录QQ邮箱-->设置-->账号-->开启IMAP/SMAP与P0P3/SMAP
开启这两个时,你会获得两个密码,接下来的内容中会使用到。
发送电子邮件服务,需要使用到一下三个JAR包:mail.jar;activation.jar;cos.jar,这里我已经帮大家整理好了,下载地址:http://pan.baidu.com/s/1sknsZOp,下载好我们的JAR包,导入到我们工程的lib目录下即可。
发送电子邮件的JAVA代码如下:
import java.util.Properties;
import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage; /**
* 使用QQ邮箱IMAP/SMTP的实现发送电子邮件
* 2015-12-06
*/
public class Mail {
public static void main(String[] args) {
Properties props = new Properties();
props.put("mail.smtp.host", "smtp.qq.com");
props.put("mail.smtp.port", "");//使用465或587端口
props.put("mail.smtp.auth", "true");//设置使用验证
props.put("mail.smtp.starttls.enable","true");//使用 STARTTLS安全连接
try {
PopupAuthenticator auth = new PopupAuthenticator();
Session session = Session.getInstance(props, auth);
session.setDebug(true);//打印Debug信息
MimeMessage message = new MimeMessage(session);
Address addressFrom = new InternetAddress(PopupAuthenticator.mailuser + "@qq.com", "");//第一个参数为发送方电子邮箱地址;第二个参数为发送方邮箱地址的标签
Address addressTo = new InternetAddress("xxxxxxxxxxxx", "");//第一个参数为接收方电子邮箱地址;第二个参数为接收方邮箱地址的标签
message.setSubject("发送电子邮件的主题");
message.setText("发送电子邮件内容");
message.setFrom(addressFrom);
message.addRecipient(Message.RecipientType.TO, addressTo);
message.saveChanges();
Transport transport = session.getTransport("smtp");
transport.connect("smtp.qq.com", PopupAuthenticator.mailuser, PopupAuthenticator.password);
transport.send(message);
transport.close();
System.out.println("发送成功");
} catch (Exception e) {
System.out.println(e.toString());
System.out.println("发送失败");
}
}
} class PopupAuthenticator extends Authenticator {
public static final String mailuser = "";//发送方邮箱'@'符号前的内容:1453296946@qq.com
public static final String password = "xxxxxxxxxxxx";//成功开启IMAP/SMTP服务,在第三方客户端登录时,腾讯提供的密码。注意不是邮箱密码 public PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(mailuser, password);
}
}
是不是很简单,接下来我们的邮箱验证、登录验证、注册验证、找回密码是不是都找到实现的方向啦。
JAVA实现发送电子邮件的更多相关文章
- JAVA中发送电子邮件的方法
JAVA中发送邮件的方法不复杂,使用sun的JavaMail的架包就可以实现. 一.下载JavaMail的架包,并导入项目中,如下: 二.附上代码例子,如下: 1.在main函数中对各项参数进行赋值 ...
- Java邮件发送与接收原理
一. 邮件开发涉及到的一些基本概念 1.1.邮件服务器和电子邮箱 要在Internet上提供电子邮件功能,必须有专门的电子邮件服务器.例如现在Internet很多提供邮件服务的厂商:sina.sohu ...
- javamail模拟邮箱功能发送电子邮件-基础实战篇(javamail API电子邮件实例)
引言: JavaMail 是一种可选的.能用于读取.编写和发送电子消息的包 JavaMail jar包下载地址:http://java.sun.com/products/javamail/downlo ...
- javamail模拟邮箱功能发送电子邮件-中级实战篇【新增附件发送方法】(javamail API电子邮件实例)
引言: JavaMail jar包下载地址:http://java.sun.com/products/javamail/downloads/index.html 此篇是紧随上篇文章而封装出来的,阅读本 ...
- Spring发送电子邮件
Spring提供了发送电子邮件的功能,它向用户屏蔽了底层邮件系统的一些细节,同时代表客户端负责底层的资源处理. Spring的邮件服务支持主要是通过JavaMailSender这个接口实现的: p ...
- java邮件发送(以163邮箱为例)
1.首先应该开通163邮箱的smtp和pop3,得到授权码 2.其次建立一个web项目,否则需要倒jar包mail.jar 3.创建一个类 4.注意:邮件内容必须为正式话语,否则系统会认为是垃圾邮件而 ...
- Spring通过Gmail SMTP服务器MailSender发送电子邮件
Spring提供了一个有用的“org.springframework.mail.javamail.JavaMailSenderImpl”类,通过JavaMail API 简化邮件发送过程.这里有一个项 ...
- Servlet 发送电子邮件
使用 Servlet 发送一封电子邮件是很简单的,但首先您必须在您的计算机上安装 JavaMail API 和 Java Activation Framework)JAF). 您可以从 Java 网站 ...
- 【转】基于JavaMail的Java邮件发送
http://blog.csdn.net/xietansheng/article/details/51673073 http://blog.csdn.net/xietansheng/article/d ...
随机推荐
- linux 用户管理
linux 用户管理 创建一个用户 foo 这个用户只能在/home/foo 上面增加删除文件, foo 不能在其他目录加减文件 useradd -d /home/foo -m foo [root@] ...
- js中创建对象的三种方式
1. 对象字面量 var obj={ name:"小小", age:3, car:{ brand:"baoma", } }; } 2.使用内置构造函数 var ...
- List<T>Find方法,FindAll方法,Contains方法,Equals方法
假如传入的T是一个类, List<MessageInfos> MessageInfos = new List<MessageInfos>(); MessageInfos= Me ...
- js~~给网站图片添加水印~~~
因为朋友问我怎么加水印,引起了我的兴趣,没接触过也没想过要怎么写,所以试了试.写了一个简单的demo......
- Win8.1开机黑屏一段时间才能登录
最近发现开机后有一段时间黑屏过后才能进人登录界面,并且时间越来越长,网上查询了很多方法都没有效果,只能自己找了. 网上有一种方法提到用msconfig诊断判断或者安全启动来查看是否有黑屏,于是试了一下 ...
- xampp常见安装失败问题
遇到这两个错误后不管它,继续安装.完成后下载Microsoft Visual C++ 2008 Redistributable Package (x86),可以到这里下载:Microsoft Visu ...
- C#判断数组是否为空
string[] array=new[] { "1", "2", "3", "4", "5" }; ...
- android shape的使用(转)
shape用于设定形状,可以在selector,layout等里面使用,有6个子标签,各属性如下: <?xml version="1.0" encoding="ut ...
- *HDU 2451 数学
Simple Addition Expression Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Ja ...
- 分析错误:socket accept failed too many open files
步骤:1.--查看当前各个进程打开的文件句柄数,其结果的第一列表示句柄数,第二列表示进程号lsof -n|awk '{print $2}'|sort|uniq -c |sort -nr|more 2. ...