package com.wisentsoft.management.eventnotif.service.impl;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Date;
import java.util.Properties;
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import com.ibm.icu.util.StringTokenizer;
public class Mail {
private String errMsg = "";
private String sender = "";// 发件人地址
private String smtpHost = "";// 邮件发送服务器(smtp)
private String user = ""; // 登录用户名
private String password = "";// 登录密码
private String subject = "";// mail主题
public Mail() {
this.setPropertiesAttri();
}
private void setPropertiesAttri() {
try {
InputStream is = getClass().getResourceAsStream(
"MailServer.properties");
Properties prop = new Properties();
prop.load(is);
this.setSmtpHost(prop.get("SmtpHost").toString());
this.setUser(prop.get("User").toString());
this.setPassword(prop.get("Password").toString());
this.setSender(prop.get("Sender").toString());
this.setSubject(prop.get("Subject").toString());
} catch (Exception ex) {
System.err.println("ex1 in sendmail.java:" + ex.toString());
}
}
/** 设置发件人地址 */
public void setSender(String sender) {
this.sender = sender;
}
public String getSender() {
return sender;
}
/** 设置邮件发送服务器(smtp) */
public void setSmtpHost(String smtpHost) {
this.smtpHost = smtpHost;
}
public String getSmtpHost() {
return smtpHost;
}
/** 设置登录用户名 */
public void setUser(String user) {
this.user = user;
}
public String getUser() {
return user;
}
/** 设置登录密码 */
public void setPassword(String password) {
this.password = password;
}
public String getPassword() {
return password;
}
/** 设置mail主题 */
public void setSubject(String subject) {
this.subject = subject;
}
public String getSubject() {
return subject;
}
/**
* 使用smtp发送邮件 主程序
*
* @throws MessagingException
* mail发送失败
*/
public void smtp(String receiver, String content) throws MessagingException {
if (smtpHost == null)
throw new MessagingException("smtpHost not found");
if (user == null)
throw new MessagingException("user not found");
if (password == null)
throw new MessagingException("password not found");
Properties properties = new Properties();
properties.put("mail.smtp.host", smtpHost);// 设置smtp主机
properties.put("mail.smtp.auth", "true");// 使用smtp身份验证
Session session = Session.getDefaultInstance(properties,
new Authenticator() {
public PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(user, password);
}
});
// 获得邮件会话对象
MimeMessage mimeMsg = new MimeMessage(session);// 创建MIME邮件对象
if (sender != null)// 设置发件人地址
{
mimeMsg.setFrom(new InternetAddress(sender));
}
if (receiver != null)// 设置收件人地址
{
mimeMsg.setRecipients(Message.RecipientType.TO, parse(receiver));
}
if (subject != null)// 设置邮件主题
{
mimeMsg.setSubject(subject, "GBK");
}
MimeBodyPart part = new MimeBodyPart();// mail内容部分
part.setText(content == null ? "" : content, "GBK");
// 设置邮件格式为html cqc
part.setContent(content.toString(), "text/html;charset=GBK");
Multipart multipart = new MimeMultipart();
multipart.addBodyPart(part);// 在 Multipart 中增加mail内容部分
mimeMsg.setContent(multipart);// 增加 Multipart 到信息体
mimeMsg.setSentDate(new Date());// 设置发送日期
Transport.send(mimeMsg);// 发送邮件
}
/** 解析地址集合字符串 */
private InternetAddress[] parse(String addressSet) throws AddressException {
ArrayList list = new ArrayList();
StringTokenizer tokens = new StringTokenizer(addressSet, ";");
while (tokens.hasMoreTokens()) {
list.add(new InternetAddress(tokens.nextToken().trim()));
}
InternetAddress[] addressArray = new InternetAddress[list.size()];
list.toArray(addressArray);
return addressArray;
}
/**
* 供外部调用的接口
*/
public boolean sendMails(String mail, String content) {
int mailLen = 0;
int contentLen = 0;
if (mail == null || content == null) {
return false;
}
try {
this.smtp(mail, content);
} catch (Exception ex) {
System.err.println("ex2 in sendmail.java:" + ex.toString());
}
return true;
}
public static void main(String[] args) {
Mail mail = new Mail();
String email = "xx@163.com;xx@sina.com";
String content = "账号:123 密码:123 <br/>感谢您注册!<br/><a href='http://www.xxxx.com.cn' target='_blank'>www.xxxx.com.cn</a><br/>此致<br/>xxxx <br/>即日";
try {
mail.sendMails(email, content);
} catch (Exception ex) {
System.err.println("ex33:" + ex.toString());
}
}
}
MailServer.properties:
SmtpHost=smtp.163.com
User=xx
Password=xx
Sender=xx@163.com
Subject=Hello
分享到:
相关推荐
以下是一个简单的示例代码,展示如何使用Java发送邮件: ```java import javax.mail.*; import javax.mail.internet.*; public class EmailSender { public static void main(String[] args) throws Exception { ...
这个“java mail 发邮件 demo程序”是为了演示如何使用JavaMail API发送电子邮件而创建的一个简单示例。在这个DEMO程序中,我们将深入探讨JavaMail API的核心概念以及如何构建一个实际的邮件发送功能。 首先,...
本篇文章将深入探讨如何使用Java编写程序来实现邮件的发送,包括发送纯文本邮件、带有附件的邮件、包含图片的邮件以及在邮件中显示图片。 首先,我们得知道JavaMail API是实现邮件发送功能的关键库。它提供了一系列...
`SendMail.java` 是一个示例程序,通常包含了一个简单的Java类,用于演示如何使用Java Mail API发送邮件。在这个示例中,开发者会看到如何配置邮件会话,创建 MimeMessage 对象来构造邮件内容,以及如何通过SMTP...
以下是一个简单的Java Mail邮件发送的源码示例: ```java import javax.mail.*; import javax.mail.internet.*; public class SimpleEmailSender { public static void main(String[] args) { // 设置邮件服务器...
- `SendMail.jar`: 这是一个可执行的Java JAR文件,包含了编译后的程序,可以直接运行发送邮件。 - `SendMailPanel.java`, `MailExample.java`, `SendMailFrame.java`: 这些可能是程序中的类文件,可能分别对应着...
Java Mail 是一个用于处理电子邮件的开源API,它允许开发者通过编程方式发送、接收和管理邮件。在Java应用程序中,我们通常使用JavaMail API来实现邮件的自动化操作,比如发送带有附件的邮件、群发邮件等。下面将...
本篇文章将详细介绍如何使用Java语言编写一个简单的邮件发送程序。通过这个示例,读者可以学习到如何利用Java进行网络编程,尤其是如何与SMTP服务器交互来发送邮件。 #### 二、项目背景与目的 本项目来源于《编程...
下面是一个完整的Java程序,用于发送简单的文本邮件到QQ邮箱。 ```java import javax.mail.*; import javax.mail.internet.*; import java.util.Properties; public class SendQqMailExample { public static ...
Java Mail 是一个用于处理电子邮件的开源API,它允许Java开发者在应用程序中实现发送、接收和操作邮件的功能。在这个实例中,我们将深入探讨如何使用Java Mail API来发送邮件,特别是涉及中文处理和HTML格式的邮件。...
Spring框架提供了一种优雅的方式来处理这个任务,它整合了JavaMailSender接口和JavaMail API,使得在Java应用程序中发送邮件变得更加简单。让我们深入探讨这个主题。 首先,JavaMail API是Java用来处理邮件收发的...
Java Mail 是一个强大的开源库,用于在Java应用程序中处理电子邮件通信。它提供了API,使得开发者可以方便地发送、接收和管理邮件。这个压缩包文件很可能包含了一组示例代码或工具,帮助我们理解如何使用Java Mail ...
Java发送电子邮件是一个常见的任务,尤其在自动化通知、报表发送或者用户验证等场景中。下面将详细解释如何使用Java来发送邮件,并提供相关的知识点。 首先,Java通过JavaMail API提供了发送邮件的功能。JavaMail ...
下面是一个简单的示例代码,展示了如何使用Java Mail API发送一封简单的文本邮件: ```java import javax.mail.*; import javax.mail.internet.*; public class EmailSender { public static void main(String[] ...
以下是一个简单的Java Mail发送邮件的示例代码: ```java import javax.mail.*; import javax.mail.internet.*; public class EmailSender { public static void main(String[] args) throws Exception { // ...
为了更好地理解 Java Mail API 的使用,可以通过以下步骤来构建一个简单的邮件发送应用程序: 1. **导入 Java Mail 库**:确保项目中包含了 Java Mail API 相关的库文件。 2. **创建 Session 对象**:配置邮件发送所...
JavaMail是Java平台上的一个开源库,它提供了邮件发送和接收的功能。在JavaMail中,`javax.mail`和`javax.mail.internet`包是核心部分,包含了处理邮件的相关类和接口。 1. **配置JavaMail**: 在项目中,你需要配置...
在使用JavaMail API时,我们需要创建一个`Properties`对象来配置邮件服务器的信息,然后创建一个`Session`对象,这个对象将被用于创建和发送邮件。`MimeMessage`是JavaMail API中最常用的邮件对象,它允许我们设置...
JavaMail 是一个开源的 Java API,它为 Java 开发者提供了处理电子邮件的全面功能。这个API使得在Java应用程序中创建、发送、接收和管理邮件变得简单。标题中的“javamail”指的就是这个重要的库,它包含了处理邮件...
JavaMail 是一个 Java API,用于在 Java 应用程序中发送和接收电子邮件。它提供了一个抽象层,允许开发者使用不同的电子邮件协议,例如 SMTP、POP3 和 IMAP。 在本文中,我们将讨论如何使用 JavaMail 库来代发邮件...