代码背景:在注册一些账号是往往需要使用填写邮箱来获取激活码来激活账号。
需要得到jar:main.jar
具体代码如下:
/*
* 发送邮件的方法
* tjbjxlkkbmbqbefi
*/
public static void sendMail(String to,String code) throws Exception {
//获得session对象
final Properties props = new Properties();
//下面两段代码是设置ssl和端口,不设置发送不出去。
props.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
props.setProperty("mail.smtp.socketFactory.port", "465");
// 发送服务器需要身份验证
props.setProperty("mail.transport.protocol", "smtp");// 发送邮件协议名称
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.host", "smtp.qq.com");//QQ邮箱的服务器 如果是企业邮箱或者其他邮箱得更换该服务器地址
// 发件人的账号
props.put("mail.user", "**@qq.com");
// 访问SMTP服务时需要提供的密码
props.put("mail.password", "******");
// 构建授权信息,用于进行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 se = Session.getInstance(props,authenticator);
//创建一个表示邮件的对象message
Message mes = new MimeMessage(se);
try {
mes.setFrom(new InternetAddress("****@qq.com"));//发件人
mes.addRecipient(RecipientType.TO, new InternetAddress(to));//设置收件人
mes.setSubject("*******");//主题
mes.setContent("******","text/html;charset=UTF-8");
//发送邮件transport
Transport.send(mes);
} catch (AddressException e) {
e.printStackTrace();
} catch (MessagingException e) {
e.printStackTrace();
}
}
public static void main(String[] args) throws Exception {
sendMail("*****@qq.com","***");
}
代码说明:“to”:为需要发送的邮件地址;“code”:为对方接收到的激活码。“mail.user”:为发件人的邮箱地址;“mail_password”:为腾讯给的访问SMTP服务时需要提供的密码,并非邮箱的登录密码。具体获取方式可百度获取。