/**
* 简单的发送邮件例子
*/
public class SendMail {
// 目的
private String to;
// 来源
private String from;
// 发送邮件的服务器
private String smtpServer;
// 发送端的账户
private String userName;
// 发送端的密码
private String password;
// 邮件主题
private String subject;
// 邮件内容
private String content;
// 附件
List<String> attachments = new ArrayList<String>();
//……………………省略setter、getter
public SendMail() {
}
/**
* 中文gbk转换
*
* @param text
* @return
*/
public String transferChinese(String text) {
try {
//对消息进行gbk转换
text = MimeUtility.encodeText(new String(text.getBytes()),
"GB2312", "B");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return text;
}
/**
* 添加附件
*
* @param name
*/
public void attachFile(String name) {
attachments.add(name);
}
/**
* 发邮件
*
* @return
* @throws MessagingException
* @throws AddressException
*/
public boolean sendMail() throws Exception {
// 属性配置
Properties properties = new Properties();
properties.put("mail.smtp.host", smtpServer);
// 是否进行smtp验证
properties.put("mail.smtp.auth", "true");
Session session = Session.getDefaultInstance(properties,
new Authenticator() {//构造服务器认证对象
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(userName, password);
}
});
//建立实际邮件对象
//发送函数中的参数也是MimeMessage
MimeMessage msg = new MimeMessage(session);
// 设置发件人地址
msg.setFrom(new InternetAddress(from));
// 设置收件人
// 收件人可以是多个,所以是数组
InternetAddress[] internetAddressTo = { new InternetAddress(to),new InternetAddress("stail111@163.com") };
// 目标的发送类型【直接发、抄送、暗送】
msg.setRecipients(Message.RecipientType.TO, internetAddressTo);
// 中文主题gbk转换
subject = transferChinese(subject);
msg.setSubject(subject);
//建立保存电子邮件的内容的容器
Multipart mp = new MimeMultipart();
// 构造正文txt文本内容
MimeBodyPart mbpContent = new MimeBodyPart();
mbpContent.setText(content);
//电子邮件的内容的容器添加txt内容
mp.addBodyPart(mbpContent);
// 构造邮件附件
for (String files : attachments) {
MimeBodyPart filembpContent = new MimeBodyPart();
FileDataSource fds = new FileDataSource(files);
filembpContent.setDataHandler(new DataHandler(fds));
filembpContent.setFileName(fds.getName());
mp.addBodyPart(filembpContent);
}
attachments.clear();
msg.setContent(mp);
msg.setSentDate(new Date());
// 真正发送邮件
Transport.send(msg);
return true;
}
}
|
相关推荐
### JavaEE5学习笔记04-JavaMail使用总结 在JavaEE5的学习过程中,JavaMail是一个非常重要的组件,它提供了发送、接收电子邮件的功能,并且能够与各种不同的邮件服务器进行交互。下面将根据提供的内容,详细解析...
这篇学习笔记主要聚焦于JavaMail在JavaEE5中的使用,通过深入理解其核心概念和实践操作,我们可以更好地在实际项目中应用这一工具。 JavaMail API提供了一套标准的接口,允许Java应用程序发送和接收电子邮件。它...
### JavaEE5学习笔记01-JTA和数据库事务:深入解析与应用 #### 一、JavaEE5概览与核心组件 JavaEE5是Java Enterprise Edition的第五个版本,标志着企业级Java应用的一个重要里程碑。它引入了一系列重要的新特性,...
### JavaEE5学习笔记07-Web层与EJB集成总结 #### 一、JavaEE5框架中的Web层与EJB集成概述 在JavaEE5(即Java Platform, Enterprise Edition 5)中,Web层与EJB(Enterprise JavaBeans)的集成是构建企业级应用的...
JavaEE源代码 struts2-core-2.0.11JavaEE源代码 struts2-core-2.0.11JavaEE源代码 struts2-core-2.0.11JavaEE源代码 struts2-core-2.0.11JavaEE源代码 struts2-core-2.0.11JavaEE源代码 struts2-core-2.0.11JavaEE源...
JavaEE源代码 struts2-spring-plugin-2.0.11JavaEE源代码 struts2-spring-plugin-2.0.11JavaEE源代码 struts2-spring-plugin-2.0.11JavaEE源代码 struts2-spring-plugin-2.0.11JavaEE源代码 struts2-spring-plugin-...
javaee-api-8.0-javadoc.jar,这是javaee1.8api的jar包,解压后可用javadoc2chm制作成chm帮助文档。
java javaee-api-6.0-5
JavaEE源代码 jaxen-1.1-beta-7JavaEE源代码 jaxen-1.1-beta-7JavaEE源代码 jaxen-1.1-beta-7JavaEE源代码 jaxen-1.1-beta-7JavaEE源代码 jaxen-1.1-beta-7JavaEE源代码 jaxen-1.1-beta-7JavaEE源代码 jaxen-1.1-...
JavaEE源代码 commons-logging-1.0.4JavaEE源代码 commons-logging-1.0.4JavaEE源代码 commons-logging-1.0.4JavaEE源代码 commons-logging-1.0.4JavaEE源代码 commons-logging-1.0.4JavaEE源代码 commons-logging-...
JavaEE源代码 commons-collections-2.1.1JavaEE源代码 commons-collections-2.1.1JavaEE源代码 commons-collections-2.1.1JavaEE源代码 commons-collections-2.1.1JavaEE源代码 commons-collections-2.1.1JavaEE源...
javaEE健康管理系统SSH-oracle(源码+数据库sql+lun文+视频齐全)javaEE健康管理系统SSH-oracle(源码+数据库sql+lun文+视频齐全)javaEE健康管理系统SSH-oracle(源码+数据库sql+lun文+视频齐全)javaEE健康管理系统SSH-...
在这个“javaee5-doc-api”压缩包中,包含的是Java EE 5的官方API文档,对于开发者来说是一份非常重要的参考资料。 **1. Servlet API** Servlet是Java EE中处理HTTP请求的核心组件。在Java EE 5中,Servlet API升级...
JavaEE源代码 ognl-2.6.11JavaEE源代码 ognl-2.6.11JavaEE源代码 ognl-2.6.11JavaEE源代码 ognl-2.6.11JavaEE源代码 ognl-2.6.11JavaEE源代码 ognl-2.6.11JavaEE源代码 ognl-2.6.11JavaEE源代码 ognl-2.6.11JavaEE源...