import java.util.Properties;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.NoSuchProviderException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import cn.hs.dpl.pojo.AppInfo;
import cn.hs.dpl.pojo.AppModDesc;
import cn.hs.dpl.pojo.UserInfo;
public class SendMailUtils {
/**
*
* @param from
* 发件人的地址
* @param to
* 收件人地址
* @param titleMsg
* 邮件标题
*/
public void sendMail(String from, String to, String title, String host) {
try {
//系统所在的URL
String url = SystemPropertiesUtils.getSystemParamValue("sysUrl");
Properties props = new Properties();
props.put("mail.smtp.host", host);// 指定SMTP服务器
props.put("mail.smtp.auth", "false");// 指定是否需要SMTP验证,为false时,不用指定用户名、密码
Session mailSession = Session.getDefaultInstance(props);
mailSession.setDebug(true);// 是否在控制台显示debug信息
MimeMessage message = new MimeMessage(mailSession);
message.setFrom(new InternetAddress(from));// 发件人
message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));// 收件人
// 将中文转化为GB2312编码
message.setSubject(title, "GB2312"); // 邮件主题
message.setContent("<a href='"+ url +"'>请点击此链接进行评审</a>",
"text/html;charset=utf-8");// 邮件内容
message.saveChanges();
Transport transport = mailSession.getTransport("smtp");
transport.connect(host, null, null);
transport.sendMessage(message, message.getAllRecipients());
transport.close();
} catch (Exception e) {
LoggerUtil2file.tranceERROR("邮件发送失败,请检查邮件的配置是否正确!", e);
}
}
/**
* @param mailTo 要发送的邮件地址
* @param appInfo 要评审的应用信息
*
*/
public static void sendMailToUser(UserInfo userInfo, AppModDesc appModDesc) throws Exception {
// 判断系统配置中是否启用发送邮件
String useMail = SystemPropertiesUtils.getSystemParamValue("useMail");
if("no".equalsIgnoreCase(useMail)) {
return;
}
String mailTo = userInfo.getUserNotes();
// 从系统配置中得到邮箱服务器地址
String host = SystemPropertiesUtils.getSystemParamValue("mailHost");
String modType= appModDesc.getChangeType().equalsIgnoreCase(Const.MODIFYITEM_ADD)?
"添加":appModDesc.getChangeType().equalsIgnoreCase(Const.MODIFYITEM_DEL)?"删除":"修改" ;
String title = "";
if(Const.REVIEW_COMMIT.equalsIgnoreCase(appModDesc.getReviewPass())) {
title = ",入库,请评审!";
} else {
title =",被驳回,请重新提交!";
}
// 从系统配置得到发送者
String mailFrom = SystemPropertiesUtils.getSystemParamValue("mailFrom");
// 从系统配置得到发送目标邮件的后缀
String mailSuffix = SystemPropertiesUtils.getSystemParamValue("mailSuffix");
SendMailUtils sm = new SendMailUtils();
sm.sendMail(mailFrom, mailTo + mailSuffix, title, host);
}
}
分享到:
相关推荐
JavaMail操作的总结
怎样才算比较完整的Javamail操作指南?我想应该包括绝大多数基本的email操作,能够应付一般的应用。在本指南中打算囊括以下内容: ● 发送email:包括文本邮件、HTML邮件、带附件的邮件、SMTP验证 ● 接收email:...
使用这些库时,确保它们在类路径中可用,以便正确地运行和编译包含 JavaMail 操作的代码。 总之,JavaMail 1.5.2 提供了一个强大且灵活的工具集,让开发者能够在Java环境中方便地处理电子邮件,无论是发送、接收...
JavaMail是一个开源库,它提供了用于发送、接收和操作电子邮件的标准API。而James(Apache James)则是一个完整的邮件服务器,它支持SMTP、POP3和IMAP协议,同时也包含了邮件存储、过滤和管理等功能。 **JavaMail的...
- `Session`:是整个JavaMail操作的上下文,负责配置邮件服务的属性,如认证信息、邮件服务器地址等。 - `Message`:表示一封邮件,包含了邮件的各个部分,如主题、正文、附件等。 - `Store`:用于连接邮件服务器并...
Session 是所有 JavaMail 操作的基础,用于设置配置信息和提供全局上下文。 2. **邮件协议**:讲解 SMTP(Simple Mail Transfer Protocol)用于发送邮件,而 POP3(Post Office Protocol version 3)或 IMAP...
它是整个JavaMail操作的基础。 5. **Folder对象**:`javax.mail.Folder`代表邮箱中的文件夹,可以用来列举、打开、关闭邮箱中的邮件文件夹。 6. **Address对象**:`javax.mail.Address`表示邮件地址,有`Internet...
2. **Session 类**:代表邮件会话,是JavaMail操作的基础。你可以配置SMTP服务器信息、认证信息以及其他邮件传输参数。 3. **Transport 类**:负责将准备好的Message对象实际发送出去,通过SMTP协议连接到邮件...
"JavaMail操作的总结.txt"和"JavaMail.txt"可能会更深入地讨论JavaMail的使用技巧和常见问题,而"用Java程序生成文本的捷径.TXT"可能是关于如何在Java中生成文本内容以填充邮件的说明,"为什么要自己写底层涵式.txt...
1. **创建邮件会话**:首先,你需要创建一个`Session`对象,这是JavaMail操作的基础。你可以设置SMTP服务器的地址、端口、用户名和密码,以及其他配置参数。 2. **构建邮件**:通过`Message`类,你可以设置发件人、...
在本项目中,"javamail(带界面的javamail)"显然包含了一个具有图形用户界面(GUI)的示例应用,展示了如何集成JavaMail功能来实现邮件的交互操作。 首先,我们要了解JavaMail的基本概念。JavaMail API 提供了 javax...
JavaMail API详解.chm文件可能是一个帮助文档,详细介绍了如何使用JavaMail API进行邮件操作。它可能涵盖了如何设置邮件服务器连接,创建邮件消息,添加附件,处理邮件头信息,以及使用MIME多部分消息等内容。这个...
JavaMail 是一个开源库,用于在Java应用程序中处理电子邮件。这个库提供了丰富的API,使得开发者可以方便地执行发送、接收、读取和管理邮件的任务。`javamail-1.6`是JavaMail的一个版本,它包含了从早期版本中继承的...
JavaMail 是一个开源的 Java API,它为开发者提供了在 Java 应用程序中发送和接收电子邮件的功能。这个API包括了多种协议的支持,如SMTP(简单邮件传输协议)、POP3(邮局协议)和IMAP(因特网消息访问协议)。在...
使用JavaMail API可以编写出跨平台的邮件处理应用,而且由于Java的跨平台特性,使用JavaMail API开发的邮件应用可以部署在Windows、Linux、Unix、Mac OS等多种操作系统上。 文件中提到的“Evaluation Purposes”和...
这个库包含了JavaMail API的实现,允许开发者使用SMTP、POP3、IMAP等协议进行邮件操作。它提供了`Session`、`Message`、`Address`、`Store`和`Transport`等关键类,是构建邮件应用的基础。 使用这两个jar包时,...
JavaMail 是一个开源的 Java API,它为Java开发者提供了处理电子邮件的能力。这个API允许开发者发送、接收、管理邮件,包括附件、HTML 内容、MIME 多部分消息等。`javamail.jar` 文件是JavaMail的核心库,包含了所有...
JavaMail API 分为两部分:一是与协议无关的消息操作,二是特定协议的实现,如SMTP、POP、IMAP和NNTP。 2. **相关协议** - **SMTP(Simple Message Transfer Protocol)**:用于发送电子邮件,程序通过SMTP与SMTP...
JavaMail 是一个开源的Java库,它为Java程序员提供了发送、接收和操作电子邮件的强大功能。在Java应用程序中发送电子邮件,通常需要依赖特定的库,JavaMail 就是其中之一。本主题将详细介绍JavaMail以及与之相关的`...
在 JavaMail 1.6.0 中,开发人员可以利用这一功能来实现离线阅读、邮件分类和标记等操作。 POP3 主要用于下载服务器上的邮件,通常用于简单邮件检索。JavaMail 提供的 POP3 支持使得开发者能够编写应用程序来定期...