JavaMail发送QQ邮件
1、开启QQ服务并获得授权码
授权码是QQ邮箱推出的,用于登录第三方客户端的专用密码
适用于登录以下服务:POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务
QQ邮箱Web界面上方——设置——账户——找到POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务——开启所需要的服务
QQ官方文档:http://service.mail.qq.com/cgi-bin/help?subtype=1&&id=28&&no=10012562、关于设置IMAP、POP3/SMTP及其SSL加密方式
如果您的电子邮件客户端支持SSL,可以在设置中选择使用SSL。
通用配置参数:
(我们已经默认都支持这些协议,用户无需自己手动开启这些服务器与端口)
POP3/SMTP协议
接收邮件服务器:pop.exmail.qq.com ,使用SSL,端口号995
发送邮件服务器:smtp.exmail.qq.com ,使用SSL,端口号465
海外用户可使用以下服务器
接收邮件服务器:hwpop.exmail.qq.com ,使用SSL,端口号995
发送邮件服务器:hwsmtp.exmail.qq.com ,使用SSL,端口号465
IMAP协议
接收邮件服务器:imap.exmail.qq.com ,使用SSL,端口号993
发送邮件服务器:smtp.exmail.qq.com ,使用SSL,端口号465
海外用户可使用以下服务器
接收邮件服务器:hwimap.exmail.qq.com ,使用SSL,端口号993
发送邮件服务器:hwsmtp.exmail.qq.com ,使用SSL,端口号465
QQ官方文档:http://service.exmail.qq.com/cgi-bin/help?id=28&no=1000585&subtype=1
3、JavaMail代码
import java.security.Security;
import java.util.Properties;
import javax.mail.Address;
import javax.mail.Authenticator;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMessage.RecipientType;
import org.junit.Test;
public class JavaMail01_Test {
@Test
public void testJavaMail()throws Exception{
Properties props = new Properties();
// Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";
props.setProperty("mail.smtp.socketFactory.class", SSL_FACTORY);
props.setProperty("mail.smtp.socketFactory.fallback", "false");
props.setProperty("mail.smtp.socketFactory.port", "465");
props.put("mail.smtp.ssl.enable", "true");
props.put("mail.smtp.port", "465");
props.put("mail.smtp.host","smtp.qq.com");//邮件发送服务器地址
props.put("mail.smtp.auth",true);//是否验证用户身份
Session session = Session.getInstance(props);//得到Session
// 不适用下面的方式创建session也可以
// Session session = Session.getDefaultInstance(props, new Authenticator(){
// //身份认证
// protected PasswordAuthentication getPasswordAuthentication() {
// return new PasswordAuthentication("115****435@qq.com","16位授权码");
// }});
session.setDebug(true);//使用debug模式,在控制台输出smtp协议应答过程
//创建一个MimeMessage格式的邮件
MimeMessage message = new MimeMessage(session);
//设置发送者
Address fromAddress = new InternetAddress("115****435@qq.com");//邮件地址
message.setFrom(fromAddress);//设置发件地址
//设置接收者
Address toAddress = new InternetAddress("ygsama@qq.com");//邮件地址
message.setRecipient(RecipientType.TO, toAddress);//设置收件地址
//设置邮件主题
message.setSubject("这是主题");
//设置邮件内容
message.setText("这是内容");
//保存邮件
message.saveChanges();
// 得到发送邮件的通道
Transport transport = session.getTransport("smtp");
// 通道连接服务器jlqwfmgughplhbgf
transport.connect("smtp.qq.com","115****435@qq.com","16位授权码");
// 发送
transport.sendMessage(message, message.getAllRecipients());
// 关闭通道
transport.close();
}
}注意:如果是个人邮箱使用smtp.qq.com、企业邮箱使用smtp.exmail.qq.com
本文档介绍了如何使用JavaMail API发送QQ邮件,包括开启QQ邮箱服务获取授权码,设置IMAP、POP3/SMTP及SSL加密方式,并提供了详细的JavaMail发送邮件的代码示例。
3882

被折叠的 条评论
为什么被折叠?



