很有意思的小Demo,应用场合一般为邮箱验证或激活账户,和利用邮箱发送一些通知消息
本次以qq邮箱作为发送者邮箱(接收者邮箱任意,任何邮箱都可接收)示范
首先有一些准备工作
首先把QQ邮箱的POP3 SMTP打开,确定你的网络正常、非代理 【确定你的QQ邮箱开启了SMTP】(qq邮箱默认是关闭的,禁止第三方平台登录QQ邮箱的)
打开你的POP3/SMTP服务
注意:期间会生成一个授权码(相当于QQ邮箱的登录密码),这个要复制记下来,待会要用到
qq邮箱(发送者邮箱)到此准备完毕!!
接下来,准备jar包,两个包,拿去玩
http://pan.baidu.com/s/1kVIGA8n
注意:引入的包会和珅Java5.0的包起冲突,所以要删除自己JavaEE 5.0的两个jar包
教程如下:
选择这两个文件夹,删除即可
然后回到项目,刷新就好了!
到此准备工作就做好啦,接下来上代码:
public class MailUitls {
public static void sendMail(String toUsername,String mailContent) throws Exception{
// 创建Properties 类用于记录邮箱的一些属性
final Properties props = new Properties();
// 表示SMTP发送邮件,必须进行身份验证
props.put("mail.smtp.auth", "true");
//此处填写SMTP服务器
props.put("mail.smtp.host", "smtp.qq.com");
//端口号
props.put("mail.smtp.port", "587");
// 此处填写你的账号
props.put("mail.user", "**********@qq.com");
// 此处的密码就是前面说的那个授权码
props.put("mail.password", "*******");
// 构建授权信息,用于进行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(toUsername);
message.setRecipient(RecipientType.TO, to);
// 设置邮件标题
message.setSubject("来自失物招领平台的邮件,这是一个新的里程碑");
// 设置邮件的内容体
message.setContent(mailContent, "text/html;charset=UTF-8");
// 最后当然就是发送邮件啦
Transport.send(message);
}
}
在你想用的地方直接 类名.方法名 调用就行了!
例如:
MailUitls.sendMail("********@163.com","李果果,您丢失的女朋友有新的消息啦!请注意查收");