- 浏览: 414152 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
xurichusheng:
有个类 NameUtils 是在哪儿声明的呢?
Spring JdbcTemplate实现通用的泛型dao一:主功能实现 -
smallplum:
letmedown 写道Double d = new Doub ...
让Double类型完整显示,不用科学计数法显示E -
letmedown:
Double d = new Double("1.3 ...
让Double类型完整显示,不用科学计数法显示E -
chenbo19867758:
按照步骤可言实现破解和汉化,只是有部分没有汉化完全。
Linux上Jira 5.0的安装、破解及汉化 -
henryxiao57:
ServerID 如何获取?
Linux上Jira 5.0的安装、破解及汉化
使用时,要注意与其它mail包的冲突问题,如geronimo-javamail_1.4_spec-1.3.jar会导致邮件发出去的都是编码数据
import java.util.Date;
import java.util.Properties;
import java.util.Properties;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Address;
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.Multipart;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import javax.mail.internet.MimeUtility;
import javax.activation.FileDataSource;
import javax.mail.Address;
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.Multipart;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import javax.mail.internet.MimeUtility;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.slf4j.LoggerFactory;
/**
* 常规JavaMail 邮件发送实用类
*/
public final class MailUtil {
private static Logger logger = LoggerFactory.getLogger(MailUtil.class);
// 邮件发送者地址
private static final String SenderEmailAddr = "homlly@foxmail.com";
* 常规JavaMail 邮件发送实用类
*/
public final class MailUtil {
private static Logger logger = LoggerFactory.getLogger(MailUtil.class);
// 邮件发送者地址
private static final String SenderEmailAddr = "homlly@foxmail.com";
// 邮件发送者邮箱用户
private static final String SMTPUserName = "homlly";
// 邮件发送者邮箱密码
private static final String SMTPPassword = "xxxxxxxx";
private static final String SMTPUserName = "homlly";
// 邮件发送者邮箱密码
private static final String SMTPPassword = "xxxxxxxx";
// 邮件发送者邮箱SMTP服务器
private static final String SMTPServerName = "smtp.foxmail.com";
private static final String SMTPServerName = "smtp.foxmail.com";
// 传输类型
private static final String TransportType = "smtp";
private static final String TransportType = "smtp";
// 属性
private static Properties props;
private static Properties props;
/**
* 私有构造函数,防止外界新建本实用类的实例,因为直接使用MailUtil.sendMail发送邮件即可
*
*/
private MailUtil() {
* 私有构造函数,防止外界新建本实用类的实例,因为直接使用MailUtil.sendMail发送邮件即可
*
*/
private MailUtil() {
}
/**
* 静态构造器
*/
static {
MailUtil.props = new Properties();
* 静态构造器
*/
static {
MailUtil.props = new Properties();
// 存储发送邮件服务器的信息
MailUtil.props.put("mail.smtp.host", MailUtil.SMTPServerName);
// 同时通过验证
MailUtil.props.put("mail.smtp.auth", "true");
}
MailUtil.props.put("mail.smtp.host", MailUtil.SMTPServerName);
// 同时通过验证
MailUtil.props.put("mail.smtp.auth", "true");
}
/**
* 发送邮件
* @param emailAddr:收信人邮件地址
* @param mailTitle:邮件标题
* @param mailConcept:邮件内容 支持html标签
* @param 邮件附件URI
*/
public static boolean sendMail(String emailAddr, String mailTitle,
String mailConcept,String URI) {
Session s = Session.getInstance(MailUtil.props, null);
s.setDebug(false);
Message message = new MimeMessage(s);
try {
// 设置发件人
Address from = new InternetAddress(MailUtil.SenderEmailAddr);
message.setFrom(from);
// 设置收件人
Address to = new InternetAddress(emailAddr);
message.setRecipient(Message.RecipientType.TO, to);
// 设置主题
message.setSubject(mailTitle);
Multipart mm=new MimeMultipart();
//设置信件文本内容
BodyPart mdp=new MimeBodyPart();
// mdp.setContent(arg0)
mdp.setContent(mailConcept,"text/plain;charset=UTF-8");
mm.addBodyPart(mdp);
* 发送邮件
* @param emailAddr:收信人邮件地址
* @param mailTitle:邮件标题
* @param mailConcept:邮件内容 支持html标签
* @param 邮件附件URI
*/
public static boolean sendMail(String emailAddr, String mailTitle,
String mailConcept,String URI) {
Session s = Session.getInstance(MailUtil.props, null);
s.setDebug(false);
Message message = new MimeMessage(s);
try {
// 设置发件人
Address from = new InternetAddress(MailUtil.SenderEmailAddr);
message.setFrom(from);
// 设置收件人
Address to = new InternetAddress(emailAddr);
message.setRecipient(Message.RecipientType.TO, to);
// 设置主题
message.setSubject(mailTitle);
Multipart mm=new MimeMultipart();
//设置信件文本内容
BodyPart mdp=new MimeBodyPart();
// mdp.setContent(arg0)
mdp.setContent(mailConcept,"text/plain;charset=UTF-8");
mm.addBodyPart(mdp);
//设置信件的附件
mdp=new MimeBodyPart();
FileDataSource fds=new FileDataSource(URI);
DataHandler dh=new DataHandler(fds);
mdp.setFileName((MimeUtility.encodeText("口径维护历史信息.xls", "UTF-8", "B")));
mdp.setDataHandler(dh);
mm.addBodyPart(mdp);
message.setContent(mm);
// 设置发信时间
message.setSentDate(new Date());
// 存储邮件信息
message.saveChanges();
mdp=new MimeBodyPart();
FileDataSource fds=new FileDataSource(URI);
DataHandler dh=new DataHandler(fds);
mdp.setFileName((MimeUtility.encodeText("口径维护历史信息.xls", "UTF-8", "B")));
mdp.setDataHandler(dh);
mm.addBodyPart(mdp);
message.setContent(mm);
// 设置发信时间
message.setSentDate(new Date());
// 存储邮件信息
message.saveChanges();
Transport transport = s.getTransport(MailUtil.TransportType);
// 要填入你的用户名和密码;
transport.connect(MailUtil.SMTPServerName, MailUtil.SMTPUserName, MailUtil.SMTPPassword);
// 要填入你的用户名和密码;
transport.connect(MailUtil.SMTPServerName, MailUtil.SMTPUserName, MailUtil.SMTPPassword);
// 发送邮件,其中第二个参数是所有已设好的收件人地址
transport.sendMessage(message, message.getAllRecipients());
transport.close();
transport.sendMessage(message, message.getAllRecipients());
transport.close();
logger.debug("发送邮件,邮件地址:" + emailAddr + " 标题:" + mailTitle + " 内容:" + mailConcept + "成功!");
return true;
} catch (Exception e) {
logger.debug(e.getMessage());
logger.debug("发送邮件,邮件地址:" + emailAddr + " 标题:" + mailTitle + " 内容:" + mailConcept + "失败! 原因是" + e.getMessage());
return false;
}
}
}
return true;
} catch (Exception e) {
logger.debug(e.getMessage());
logger.debug("发送邮件,邮件地址:" + emailAddr + " 标题:" + mailTitle + " 内容:" + mailConcept + "失败! 原因是" + e.getMessage());
return false;
}
}
}
评论
2 楼
smallplum
2012-09-03
wangxin0ldrs 写道
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
这俩个包怎么导入的,
我导入你的程序后
private static Logger logger = LoggerFactory.getLogger(MailUtil.class);
LoggerFactory.getLogger(MailUtil.class)会报错,还有
logger.debug("发送邮件,邮件地址:" + emailAddr + " 标题:" + mailTitle + " 内容:" + mailConcept + "成功!");
debug也会报错
怎么解决,你都导入了哪些jar包,能贴上来吗
import org.slf4j.LoggerFactory;
这俩个包怎么导入的,
我导入你的程序后
private static Logger logger = LoggerFactory.getLogger(MailUtil.class);
LoggerFactory.getLogger(MailUtil.class)会报错,还有
logger.debug("发送邮件,邮件地址:" + emailAddr + " 标题:" + mailTitle + " 内容:" + mailConcept + "成功!");
debug也会报错
怎么解决,你都导入了哪些jar包,能贴上来吗
添加 slf4j-api-1.5.8.jar
以及log4j的jar log4j-1.2.16.jar
1 楼
wangxin0ldrs
2012-09-03
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
这俩个包怎么导入的,
我导入你的程序后
private static Logger logger = LoggerFactory.getLogger(MailUtil.class);
LoggerFactory.getLogger(MailUtil.class)会报错,还有
logger.debug("发送邮件,邮件地址:" + emailAddr + " 标题:" + mailTitle + " 内容:" + mailConcept + "成功!");
debug也会报错
怎么解决,你都导入了哪些jar包,能贴上来吗
import org.slf4j.LoggerFactory;
这俩个包怎么导入的,
我导入你的程序后
private static Logger logger = LoggerFactory.getLogger(MailUtil.class);
LoggerFactory.getLogger(MailUtil.class)会报错,还有
logger.debug("发送邮件,邮件地址:" + emailAddr + " 标题:" + mailTitle + " 内容:" + mailConcept + "成功!");
debug也会报错
怎么解决,你都导入了哪些jar包,能贴上来吗
发表评论
-
项目在64位JDK下正常,32位下出现异常
2013-02-27 15:02 2213这几天,发现项目在64 ... -
如何进行JVM参数配置
2013-02-27 13:46 815堆大小设置 JVM中最大 ... -
Java编程中“为了性能”尽量要做到的一些地方
2013-01-24 17:09 789下面是参考网络资源总结的一些在Java编程中尽可能要做到的一 ... -
安装jenkins
2012-06-07 14:46 01)搭建SCM环境 jenkins每次启动构建生命周期 ... -
Java中动态实例化一个对象
2012-04-07 12:06 2616使用场合:不知道具体要去实例化那个类的对象,通常这个参数由 ... -
Javar泛型方法及动态参数
2012-04-07 12:05 1189(1) 如何创建泛型方法 我们用例子来说明一下如何创建一 ... -
nexus的安装和基本配置
2012-03-14 14:44 1685Nexus介绍 Nexus 是Maven ... -
启动Tomcat6.x时does not exist or is not a readable directory
2012-03-14 14:31 1761前几天重新安装了Tomcat6,安装完Tomcat6后在wep ... -
Linux上Jira 5.0的安装、破解及汉化
2012-03-13 16:37 26427因为机子上要同时部署j ... -
java出现[Heap size],[PermGen space],[Java heap space ]的解决方法
2012-03-13 11:06 1922//首先检查程序有没有 ... -
如何使用Java自带的正则表达式
2011-12-21 21:20 906在Sun的Java JDK 1.40版本 ... -
深入浅出之正则表达式
2011-12-21 21:10 774前言: 半年前我对正则表达式产生了兴趣,在网上查找过不 ... -
JDK实现动态代理的例子-proxy
2011-08-23 16:16 859public interface Target { ... -
如何重写hashCode的方法
2011-07-19 15:40 1453为什么要重写hashCode方法? 我们应该先了解j ... -
Linux 安装SVN 整合Apache + 权限控制
2011-01-14 16:22 2053一:相关版本subversion在安装的时候,要求相关软件的版 ... -
关于Eclipse的SVN插件(Subclipse)历史版本乱码的问题
2010-08-13 16:08 5252我的项目都统一使用了UTF-8编码 查看当前版本,还是提交到 ... -
Eclipse控制台console自动跳出来
2010-07-12 10:18 2608有时候Eclipse启动,控制台console不会自动跳出 ... -
让Double类型完整显示,不用科学计数法显示E
2010-07-09 19:14 20301http://www.meiriyouke.net/?p=2 ... -
eclipse导出jar文件再将它转换成exe可执行文件详解
2009-12-10 22:15 1425此文章是为了帮助刚接触j2se或不懂如何打包jar文件的人而着 ... -
关于Java权限控制算法
2009-12-10 21:55 1513向大家介绍一种很不错 ...
相关推荐
06 使用JavaMail发送带附件的邮件.exe06 使用JavaMail发送带附件的邮件.exe
下面将详细解释如何利用JavaMail发送带有附件的邮件。 首先,你需要导入以下关键的JavaMail和Java Activation Framework (JAF) 类: ```java import javax.mail.*; import javax.mail.internet.*; import javax....
以上就是使用JavaMail发送带附件的邮件的基本流程。需要注意的是,实际应用中可能需要处理更多复杂情况,例如错误处理、SSL/TLS加密连接、多部分邮件(包含HTML内容和文本内容)等。同时,确保你有正确的SMTP服务器...
在使用JavaMail发送邮件前,你需要在项目中引入相关的依赖包。在描述中提到的"javamail"可能是指JavaMail的jar包,这是进行邮件操作的基础。确保你的项目已包含以下两个关键的JavaMail库: 1. `javax.mail-api.jar`...
以上就是使用JavaMail发送文本、HTML和附件邮件的详细步骤。在实际应用中,还需要考虑错误处理、邮件格式验证、多线程发送等复杂情况。同时,对于企业级应用,通常会使用邮件服务提供商如SendGrid、Mailgun等,它们...
这个资源提供了一个具体的示例,展示了如何使用JavaMail API 来发送带有附件的邮件。以下是对这个主题的详细解释: 首先,你需要理解JavaMail的核心组件。`javax.mail` 和 `javax.mail.internet` 包含了发送邮件所...
### JavaMail发送邮件时遇到的问题及解决方法 在使用JavaMail进行邮件发送的过程中,可能会遇到以下几种常见问题:发送成功但收件方未收到邮件、邮件收到后无主题或无收件人信息以及邮件内容出现乱码等情况。本文将...
下面是一个简化的JavaMail发送邮件的过程: 1. **配置邮件会话**:首先,我们需要创建一个`Properties`对象,并设置SMTP服务器的相关参数,如主机名和端口号。然后,通过`Session.getInstance()`方法初始化一个邮件...
JavaMail邮件发送(带附件)
通过解析给定文件的标题、描述、标签及部分内容,我们可以深入探讨javamail发送与接收邮件的详细教程,以及如何利用JavaMail API实现邮件功能。 ### javamail发送、接收邮件 JavaMail API是由Sun Microsystems开发...
以上就是使用JavaMail发送带附件邮件的基本流程。需要注意的是,实际应用中可能还需要处理异常、超时和其他复杂情况。此外,对于大型附件或大量邮件,应考虑使用连接池和异步处理以提高性能。 在阅读和实现上述代码...
下面我们将深入探讨JavaMail的基本概念、如何使用JavaMail发送邮件以及在Struts2框架中的实现方式。 JavaMail API主要包括以下组件: 1. `javax.mail.Session`:是JavaMail的核心,负责配置邮件服务器的信息,如...
下面是一个简单的JavaMail发送邮件的步骤: 1. **导入必要的库**:首先,在项目中导入`mail.jar`和`activation.jar`,确保编译和运行时能够访问到这些库。 2. **配置邮件会话**:创建一个`Properties`对象,设置...
这个“javamail发送邮件.zip”压缩包显然包含了一个示例项目,演示如何使用JavaMail API发送包含正文文本、图片以及附件的邮件。以下是对这个主题的详细解释: 1. **JavaMail API**: JavaMail API 是一组接口和类...
JavaMail 是一个开源库,它提供了在Java应用程序中发送和接收电子邮件的标准API。这个源码示例是关于如何使用JavaMail来发送带有附件...这个源码示例是一个很好的起点,帮助开发者理解并应用JavaMail发送带附件的邮件。
JavaMail API 是一个用于发送、接收电子邮件的标准接口集合,它支持多种协议(如 SMTP、IMAP 和 POP3),使得 Java 应用程序能够轻松地发送和接收电子邮件。 #### 二、发送 HTML 格式的邮件 在实际应用中,经常需要...
总结一下,Java发送带有附件的邮件涉及到JavaMail API的使用,包括配置SMTP服务器、创建邮件对象、添加内容和附件,以及发送邮件等步骤。理解这些步骤和相关类的作用是实现此功能的关键。在处理不同类型的邮件时,...
8. **使用JavaMail发送HTML邮件**:通过设置`MimeMessage`的`setContent()`方法,可以发送包含HTML的邮件。 ```java message.setContent("<h1>HTML邮件标题</h1><p>这是HTML邮件正文。</p>", "text/html;charset=...