最近在公司接到的一个任务中的一个功能是发邮件,之前没有接触过这方面的知识,就上网查了查,可以用JavaMail来做。JavaMail是专门提供给开发者处理电子邮件相关的编程接口。
然后就根据JavaMail的API写了一个小实例,因为第一次用这个东西,所以遇到了一些问题,幸好都一一解决了。
首先要导入jar包,否则程序无法运行,
jar包下载地址:http://download.csdn.net/download/u012369373/9779331
package com.szw.javamail;
import java.util.Properties;
import javax.mail.Address;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
public class JavaMailTest {
public static void main(String[] args) throws MessagingException{
Properties props = new Properties();
// 开启debug调试
props.setProperty("mail.debug", "true");
// 发送服务器需要身份验证
props.setProperty("mail.smtp.auth", "true");
// 设置邮件服务器主机名
props.setProperty("mail.host", "smtp.163.com");
// 发送邮件协议名称
props.setProperty("mail.transport.protocol", "smtp");
// 设置环境信息
Session session = Session.getInstance(props);
// 创建邮件对象
Message msg = new MimeMessage(session);
msg.setSubject("JavaMail测试");
// 设置邮件内容
msg.setText("测试内容!");
// 设置发件人
msg.setFrom(new InternetAddress("15336415920@163.com"));
Transport transport = session.getTransport();
// 连接邮件服务器
transport.connect("邮箱账号", "密码");
// 发送邮件
transport.sendMessage(msg, new Address[] {new InternetAddress("934172442@qq.com")});
// 关闭连接
transport.close();
}
}
问题一:
原因:邮箱客户端授权处于关闭状态。
解决方案:开启客户端授权,如下图:
问题二:
原因:邮箱密码输入错误。
在基于springMVC写的项目中如果想要使用JavaMail,则需要把jar包拷入tomcat下面的lib文件夹下,否则会出现如下错误:
刚接触JavaMail,写的都是最基础的,以后有时间会深入研究。