使用javax.mail发送邮件
maven依赖
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>javax.mail</artifactId>
<version>1.5.5</version>
</dependency>
注意点
以下的password都是授权码,不是你真正的邮箱密码。不然的话会报错503 error。
直接上代码(找的一个例子亲测可用)
private static boolean send_qqmail(String strMail, String strTitle, String strText){
boolean bret = false;
try
{
final Properties props = new Properties();
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.host", "smtp.qq.com");
//你自己的邮箱
props.put("mail.user", "#####@qq.com");
//你开启pop3/smtp时的验证码
props.put("mail.password", "hnoyaaxfgeonjajh");
props.put("mail.smtp.port", "25");
props.put("mail.smtp.starttls.enable", "true");
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);
// 设置发件人
String username = props.getProperty("mail.user");
InternetAddress form = new InternetAddress(username);
message.setFrom(form);
InternetAddress to = new InternetAddress(strMail);
message.setRecipient(RecipientType.TO, to);
// 设置邮件标题
message.setSubject(strTitle);
// 设置邮件的内容体
message.setContent(strText, "text/html;charset=UTF-8");
// 发送邮件
Transport.send(message);
bret = true;
}
catch (Exception e) {
e.printStackTrace();
}
return bret;
}
private static boolean send_163mail(String strMail, String strTitle, String strText){
boolean bret = false;
try
{
final Properties props = new Properties();
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.host", "smtp.163.com");
// 发件人的账号
props.put("mail.user", "#######@163.com");
//发件人的密码
props.put("mail.password", "#########xy");
// 构建授权信息,用于进行SMTP进行身份验证
Authenticator authenticator = new Authenticator() {
@Override
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);
// 设置发件人
String username = props.getProperty("mail.user");
InternetAddress form = new InternetAddress(username);
message.setFrom(form);
// 设置收件人
InternetAddress to = new InternetAddress(strMail);
message.setRecipient(RecipientType.TO, to);
// 设置邮件标题
message.setSubject(strTitle);
// 设置邮件的内容体
message.setContent(strText, "text/html;charset=UTF-8");
// 发送邮件
Transport.send(message);
bret = true;
}
catch (Exception e) {
e.printStackTrace();
}
return bret;
}
//执行
public static void main(String[] args) {
if (send_qqmail("$$$$###@qq.com", "女儿乖", "<body><p>测试代码测试代码测试啊大</p></body>"))
System.out.println("QQ邮件发送成功");
/* if (send_163mail("#######@qq.com", "测试网易邮箱发送", "<body><p>你们好吗</p></body>"))
System.out.println("网易邮件发送成功");*/
}
ps:使用163邮箱给qq邮箱发送邮件 可以发送 ,但是会直接被回收到垃圾箱里面