第一步:下载mail的jar包:
mail.jar
activation.jar
下载地址:https://javaee.github.io/javamail/#Latest_News
导入包,BuildPath:
第二步:获取发送人口令
1.登录发送者的邮箱,设置——账户
2.开启服务
开启服务需要安全验证,要么是在手机上下载软件 QQ安全中心 ,要么就是发短信验证。
3.开启IMAP/SMTP服务之后,就会获得一个16位的口令,要记住哦,好像还不可以复制…
第三步:打代码
import java.util.Date;
import java.util.Properties;
import javax.mail.Authenticator;
import javax.mail.Message.RecipientType;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
public class sendMessage {
public static void main(String[] args) {
sendMessages();
}
public static void sendMessages() {
try {
//创建Properties 类用于记录邮箱的一些属性
final Properties props = new Properties();
//表示SMTP发送邮件,必须进行身份验证
props.put("mail.smtp.auth", "true");
//此处填写SMTP服务器
props.put("mail.smtp.host", "smtp.qq.com");
//端口号,QQ邮箱给出了两个端口,这里给出587
props.put("mail.smtp.port", "587");
//此处填写你的账号
props.put("mail.user", "发送者邮箱@qq.com");
//此处的密码就是前面说的16位STMP口令
//获取口令
props.put("mail.password", "你刚刚获得一个16位的口令");
//构建授权信息,用于进行SMTP进行身份验证
Authenticator authenticator = new Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
// 用户名、密码
String userName = props.getProperty("mail.user");
String password = props.getProperty("mail.password");
return new PasswordAuthentication(userName, password);
}
};
//使用环境属性和授权信息,创建邮件会话
Session mailSession = Session.getInstance(props, authenticator);
//创建邮件消息
MimeMessage message = new MimeMessage(mailSession);
//设置发件人
InternetAddress form = new InternetAddress(props.getProperty("mail.user"));
message.setFrom(form);
//设置收件人的邮箱
InternetAddress to = new InternetAddress("收件人邮箱@qq.com");
message.setRecipient(RecipientType.TO, to);
//设置邮件主题
message.setSubject("测试邮件");
//设置消息日期
message.setSentDate(new Date());
//html文件
StringBuilder sb = new StringBuilder();
sb.append("<h1>文本内容</h1>");
//设置邮件的内容体
message.setContent(sb.toString(), "text/html;charset=UTF-8");
//最后就是发送邮件
Transport.send(message);
System.out.println("发送成功!");
} catch (AddressException e) {
System.out.println("发送失败!"+e.getMessage());
e.printStackTrace();
} catch (MessagingException e) {
System.out.println("发送失败!"+e.getMessage());
e.printStackTrace();
}
}
}
复制代码,修改三个地方:
1.发送者的邮箱号
2.发送者的邮箱号口令
3.接收人的邮箱号
第四步:运行
控制台打印“发送成功”,这时候你的邮件也已经发送给别人了。。。。。。
这是一个比较简单的案例,有一个博客比较详细参考一下:
https://blog.csdn.net/smok56888/article/details/50070453#
=================================================================华丽分割线
上面的方法只是以qq邮箱为例子,其他的邮箱也是差不多同样的操作。
下面提供各个邮箱的邮件服务器和端口号:
QQ邮箱
POP3服务器地址:pop.qq.com(端口:110)
SMTP服务器地址:smtp.qq.com (端口:25)
sina.com:
POP3服务器地址:pop3.sina.com.cn(端口:110)
SMTP服务器地址:smtp.sina.com.cn(端口:25)
sinaVIP:
POP3服务器:pop3.vip.sina.com (端口:110)
SMTP服务器:smtp.vip.sina.com (端口:25)
sohu.com:
POP3服务器地址:pop3.sohu.com(端口:110)
SMTP服务器地址:smtp.sohu.com(端口:25)
126邮箱:
POP3服务器地址:pop.126.com(端口:110)
SMTP服务器地址:smtp.126.com(端口:25)
139邮箱:
POP3服务器地址:POP.139.com(端口:110)
SMTP服务器地址:SMTP.139.com(端口:25)
163.com:
POP3服务器地址:pop.163.com(端口:110)
SMTP服务器地址:smtp.163.com(端口:25)
QQ企业邮箱
POP3服务器地址:pop.exmail.qq.com (SSL启用 端口:995)
SMTP服务器地址:smtp.exmail.qq.com(SSL启用 端口:587/465)
yahoo.com:
POP3服务器地址:pop.mail.yahoo.com
SMTP服务器地址:smtp.mail.yahoo.com
yahoo.com.cn:
POP3服务器地址:pop.mail.yahoo.com.cn(端口:995)
SMTP服务器地址:smtp.mail.yahoo.com.cn(端口:587
HotMail
POP3服务器地址:pop3.live.com (端口:995)
SMTP服务器地址:smtp.live.com (端口:587)
gmail(google.com)
POP3服务器地址:pop.gmail.com(SSL启用 端口:995)
SMTP服务器地址:smtp.gmail.com(SSL启用 端口:587)
263.net:
POP3服务器地址:pop3.263.net(端口:110)
SMTP服务器地址:smtp.263.net(端口:25)
263.net.cn:
POP3服务器地址:pop.263.net.cn(端口:110)
SMTP服务器地址:smtp.263.net.cn(端口:25)
x263.net:
POP3服务器地址:pop.x263.net(端口:110)
SMTP服务器地址:smtp.x263.net(端口:25)
21cn.com:
POP3服务器地址:pop.21cn.com(端口:110)
SMTP服务器地址:smtp.21cn.com(端口:25)
Foxmail:
POP3服务器地址:POP.foxmail.com(端口:110)
SMTP服务器地址:SMTP.foxmail.com(端口:25)
china.com:
POP3服务器地址:pop.china.com(端口:110)
SMTP服务器地址:smtp.china.com(端口:25)
tom.com:
POP3服务器地址:pop.tom.com(端口:110)
SMTP服务器地址:smtp.tom.com(端口:25)
etang.com:
POP3服务器地址:pop.etang.com
SMTP服务器地址:smtp.etang.com
具体参考
https://www.cnblogs.com/masha2017/p/11122879.html