demo需求:
用java第三方调用邮箱(主要是qq邮箱)发送邮件给一方或多方
demo主要技术:
1.引入一个额外的jar包,javax.mail.jar,开启java操作邮箱的功能
2.Properties类的使用
demo主要代码展示:
/**
* show 方法简介
* 第三方调用邮箱(这里主要是qq邮箱)发送邮件给一方或多方,注意如果是qq邮箱必须开ssl加密
* @author 叶灬黎
* @param host 主机名,例:qq邮箱的host,"smtp.qq.com"
* @param sender 发送人的邮箱
* @param nickname 发送人的昵称(随便取,别人收到邮件时看到的昵称)
* @param password 密码,除qq邮箱是要去生成的随机码,暂时其他邮箱都是邮箱登录密码
* @param receivers 接收人的邮箱,可以一个,可以多个,存放在一个字符串数组中传递
* @param subject 邮件主题(标题)
* @param content 邮件内容
* @throws Exception
*/
public static void sendMail(String host, String sender, String nickname, String password, String[] receivers,
String subject, String content) throws Exception {
Properties props = new Properties();
// 开启debug调试
props.setProperty("mail.debug", "true");
// 发送服务器需要身份验证
props.setProperty("mail.smtp.auth", "true");
// 设置邮件服务器主机名
props.setProperty("mail.host", host);
// 发送邮件协议名称
props.setProperty("mail.transport.protocol", "smtp");
// 开启ssl加密,目前qq是要开的
MailSSLSocketFactory sf = new MailSSLSocketFactory();
sf.setTrustAllHosts(true);
props.put("mail.smtp.ssl.enable", "true");
props.put("mail.smtp.ssl.socketFactory", sf);
Session session = Session.getInstance(props);
// 定义邮件主题,内容,发件人
Message msg = new MimeMessage(session);
msg.setSubject(subject);
StringBuilder builder = new StringBuilder();
builder.append(content);
msg.setText(builder.toString());
msg.setFrom(new InternetAddress(sender, nickname, "UTF-8"));
//传输连接,并发送
Transport transport = session.getTransport();
transport.connect(host, sender, password);
Address[] address = new Address[receivers.length];
for (int i = 0; i < receivers.length; i++) {
address[i] = new InternetAddress(receivers[i]);
}
transport.sendMessage(msg, address);
transport.close();
}
demo资源位置:
svn://106.15.229.200/Javaweb/tinyDemo_mail,用户 temp/temp