使用环境:
MyEclipse
引用jar包:mail.jar
邮箱:163
代码如下:
public void sendEmail(){
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);
try {
msg.setSubject("密码找回");
// 设置邮件内容
msg.setText("点击*****找回密码");
// 设置发件人
msg.setFrom(new InternetAddress("huangyunxin90@163.com"));
Transport transport = session.getTransport();
// 连接邮件服务器
transport.connect("huangyunxin90@163.com", "邮箱密码");
// 发送邮件
transport.sendMessage(msg, new Address[] {new InternetAddress(user.getEmail())});
// 关闭连接
transport.close();
} catch (MessagingException e) {
e.printStackTrace();
}
}
遇到问题:
关于运行代码java.lang.NoClassDefFoundError:com/sun/mail/util/LineInputStream异常的解决办法
异常原因是javax.mail和javax.activation这两个包已经在javaEE5当中属于基础包了;
进到MyEclipse的安装目录
X:/ProgramFiles/MyEclipse/myeclipse/eclipse/plugins/com.genuitec.eclipse.j2eedt.core_6.5.0.zmyeclipse650200806/data/libraryset/EE_5这个路径里,
可以看到javaee.jar,用rar把这个文件打开,然后进到javax文件夹里,删除mail.jar和activation.jar这两个文件夹;
再运行代码。