package org.apache.commons.mail;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import com.hisunsray.travel.config.Config;
public class MailUtils {
/**
* 简单的发邮件方式 邮件内容只有标题和邮件内容 支持多个用户批量发送
* @param subject 邮件标题
* @param contents 邮件内容
* @param userEmailAddress 收入人的邮件地址 为数组形式
* @throws Exception
*/
public static void sendSimpleEmail(String subject,String contents,String [] userEmailAddress,String fromEmailAddress) throws Exception
{
Config config = new Config();
config.loadProperty();
SimpleEmail email = new SimpleEmail();
email.setHostName(Config.getProperty("mailHostName"));
email.setAuthentication(Config.getProperty("mailHostUserName"),Config.getProperty("mailHostPassword"));
//发送给多个人
for(int i=0;i<userEmailAddress.length;i++)
{
email.addTo(userEmailAddress[i],userEmailAddress[i]);
}
email.setFrom(fromEmailAddress,fromEmailAddress);
email.setSubject(subject);
email.setContent(contents, "text/plain;charset=GBK");
email.send();
}
/**
* 发送带附件的邮件方式 邮件内容有标题和邮件内容和附件,附件可以是本地机器上的文本,也可以是web上的一个URL 文件,
* 当为web上的一个URL文件时,此方法可以将WEB中的URL文件先下载到本地,再发送给收入用户
* @param subject 邮件标题
* @param contents 邮件内容
* @param userEmailAddress 收入人的邮件地址 为数组形式
* @param multiPaths 附件地址 为数组形式
* @throws Exception
* @throws Exception
*/
public static void sendMultiPartEmail(String subject,String contents,String [] userEmailAddress,String fromEmailAddress,String []multiPaths) throws Exception
{
// MimeUtility.encodeText(filename); 测试中文乱码用的
// EmailAttachment attachment = new EmailAttachment();
// attachment.setPath("D:/hibernate培训讲座.ppt");
// attachment.setDisposition(EmailAttachment.ATTACHMENT);
// attachment.setDescription("Picture of John");
List list=new ArrayList();
// EmailAttachment [] attachmentArray = new EmailAttachment[multiPaths.length];
for(int j=0;j<multiPaths.length;j++)
{
EmailAttachment attachment = new EmailAttachment();
if(multiPaths[j].indexOf("http")==-1) //判断当前这个文件路径是否在本地 如果是:setPath 否则 setURL;
{
attachment.setPath(multiPaths[j]);
}
else
{
attachment.setURL(new URL(multiPaths[j]));
}
attachment.setDisposition(EmailAttachment.ATTACHMENT);
attachment.setDescription("Picture of John");
list.add(attachment);
}
//发送邮件信息
Config config = new Config();
config.loadProperty();
MultiPartEmail email = new MultiPartEmail();
email.setHostName(Config.getProperty("mailHostName"));
email.setAuthentication(Config.getProperty("mailHostUserName"),Config.getProperty("mailHostPassword"));
//发送给多个人
for(int i=0;i<userEmailAddress.length;i++)
{
email.addTo(userEmailAddress[i],userEmailAddress[i]);
}
email.setFrom(fromEmailAddress,fromEmailAddress);
email.setSubject("The picture");
email.setMsg(contents); //注意这个不要使用setContent这个方法 setMsg不会出现乱码
for(int a=0;a<list.size();a++) //添加多个附件
{
email.attach((EmailAttachment)list.get(a));
}
// email.attach(attachment);
email.send();
}
/**
* 发送Html格式的邮件
* @param subject 邮件标题
* @param contents 邮件内容
* @param userEmailAddress 接收用户的邮箱地址
* @param fromEmailAddress 发送人的邮箱地址
*
* @throws Exception
*/
public static void sendHtmlEmail(String subject,String contents,String [] userEmailAddress,String fromEmailAddress) throws Exception
{
Config config = new Config();
config.loadProperty();
HtmlEmail email = new HtmlEmail();
email.setHostName(Config.getProperty("mailHostName"));
email.setAuthentication(Config.getProperty("mailHostUserName"),Config.getProperty("mailHostPassword"));
//发送给多个人
for(int i=0;i<userEmailAddress.length;i++)
{
email.addTo(userEmailAddress[i],userEmailAddress[i]);
}
email.setFrom(fromEmailAddress,fromEmailAddress);
email.setSubject(subject);
email.setHtmlMsg(contents);
email.setTextMsg(contents);
email.send();
}
/**
* 统一的发送邮件的方法 调用时一定要实例化EmailBean对象
* @throws Exception
*
*/
public static void sendEmail(EmailBean bean) throws Exception
{
if(bean.isHaveMultPaths())
{
sendMultiPartEmail(bean.getSubject(),bean.getContents(),bean.getUserEmailAddress(),bean.getFromEmailAddress(),bean.getMultiPaths());
}
else
{
sendSimpleEmail(bean.getSubject(),bean.getContents(),bean.getUserEmailAddress(),bean.getFromEmailAddress());
}
}
}
分享到:
- 2006-11-16 17:19
- 浏览 2653
- 评论(1)
- 论坛回复 / 浏览 (1 / 5108)
- 查看更多
相关推荐
commons-email封装了邮件发送权限处理,AuthenticationFailedException错误可以解决了
标题“commons-email-1.1-src.zip”表明这是一个关于Apache Commons Email库的源代码压缩包,版本为1.1。Apache Commons Email是一个Java库,它提供了简单和直接的方式来创建电子邮件,包括HTML邮件、多部分邮件以及...
首先,要使用Apache Commons Email,我们需要在项目中引入其依赖。如果是Maven项目,可以在pom.xml文件中添加如下依赖: ```xml <groupId>commons-email <artifactId>commons-email <version>1.5 ``` 接下来...
Apache Commons DBUtils是一款在Java编程中广泛使用的数据库操作工具库,它的全称为“Apache Commons Database Utilities”。这个小巧且高效的库为开发者提供了方便、安全的数据库访问接口,降低了处理数据库连接、...
使用Apache Commons Email,开发者可以避免直接处理复杂的JavaMail API,减少代码量,提高代码可读性和可维护性。例如,发送一封简单的文本邮件只需几行代码: ```java import org.apache.commons.mail.*; Email ...
Commons Email 封装了 JavaMail 的部分功能,提供了简洁易用的接口,使得邮件的创建、配置和发送变得更加直观和高效。 在 Commons Email 1.0 中,主要包含以下几个核心知识点: 1. **邮件构建**:你可以使用预定义...
以下是一段简单的使用`commons-email`发送邮件的代码示例: ```java import org.apache.commons.mail.*; Email email = new SimpleEmail(); email.setSmtpPort(587); email.setDebug(true); email.setFrom("you@...
Apache Commons DBUtils是Java开发中一个非常实用的数据库操作库,它简化了JDBC(Java Database Connectivity)的使用,提供了一种更安全、更高效的方式来处理数据库操作。这个"commons-dbutils-1.3-bin"压缩包包含...
4. **构建邮件**:使用`Commons-Mail`的`Email`类创建邮件实例,设置收件人、发件人、主题和正文: ```java Email email = new SimpleEmail(); email.setFrom("your-email@example.com"); email.setSubject(...
以上就是使用Java结合Apache Commons Email和JavaMail API发送带附件的电子邮件的基本流程。开发者可以根据实际需求对邮件内容、附件类型和邮件服务器配置进行更复杂的定制。在实际项目中,为了提高代码的可读性和可...
总的来说,`commons-email-scala-helper` 是为了提升 Scala 开发者使用 Apache Commons Email 的体验而设计的,它封装了底层的 Java API,提供了更加符合 Scala 语言特性的接口,使得编写和管理邮件发送代码变得更加...
使用`commons-email-1.2.jar`,开发者可以轻松地实现复杂邮件功能,例如HTML邮件、多部分邮件(包含文本和HTML版本)、添加附件、设置抄送和密送收件人等。`HtmlEmail`是Apache Commons Email库中的一个关键类,它...
1.commons-beanutils.jar...12.commons-DbUtils.jar:Apache组织提供的一个资源JDBC工具类库,它是对JDBC的简单封装,对传统操作数据库的类进行二次封装,可以把结果集转化成List。 13.commons-Email.jar: 提供开源的API
8 commons-email-1.2.jar 邮件发送包 9 commons-httpclient-3.1.jar HTTP客户端 10 commons-io-1.4.jar IO处理包 11 commons-lang-2.4.jar 语言处理包 12 commons-logging-1.1.1.jar 日志包 13 cos.jar 文件...
在本文中,我们将详细探讨Apache Commons Email的使用方法和核心特性。 首先,Apache Commons Email提供了多种构造邮件的方法,包括创建简单文本邮件、HTML邮件、带有附件的邮件等。例如,你可以通过`SimpleEmail`...
在JavaMail中,配置和使用邮件服务可能相对复杂,而Apache Commons Mail则通过提供预定义的邮件实现和简单易用的接口来解决了这个问题。 **Apache Commons Mail基本概念** 1. **邮件组件**:Apache Commons Mail ...
commons-email是apache提供的一个开源的API,是对javamail的封装,因此在使用时要将javamail.jar加到 class path中,主要包括SimpleEmail,MultiPartEmail,HtmlEmail,EmailAttachment四个类。 HtmlEmail:HTML格式邮件...
对于更复杂的应用场景,还可以使用开源库,如Apache Commons Email或Spring框架中的MailSender,它们提供了更友好的API来简化邮件发送操作。 在提供的标签"源码 工具"中,我们可以理解到,深入学习和理解JavaMail ...
再者,`commons-email-1.2.jar`是Apache Commons Email项目的一部分,它为JavaMail提供了一个更高级、更易于使用的封装。Apache Commons Email提供了一些便利的类和方法,使得编写邮件发送代码更加直观。例如,你...