package mail;
import javax.mail.Authenticator;
import javax.mail.PasswordAuthentication;
/**Authenticator接口实现类 :send Mail 的 session 中用到 */
public class AuthenticatorImpl extends Authenticator {
private String name;
private String password;
public AuthenticatorImpl() {
super();
}
public AuthenticatorImpl(String name, String password) {
super();
this.name = name;
this.password = password;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(name, password);
}
}
/********/
package mail;
import java.io.Serializable;
import java.util.ArrayList;
public class Mail implements Serializable{
/** 发件人地址 */
private String sendFrom;
/** 收件人地址 */
private String sendTo;
/** 抄送地址 */
private String sendCC;
/** 邮件服务器地址 */
private String hostSMTP;
/** 用户名 */
private String userName;
/** 密码 */
private String password;
/** 邮件主题 */
private String mailSubject;
/** 邮件正文内容 */
private String mailContent;
/** 附件集合 : 最多为5个 */
private ArrayList<String> attfile = new ArrayList<String>();
public String getSendFrom(){return sendFrom;}
public void setSendFrom(String sendFrom){this.sendFrom = sendFrom;}
public String getSendTo(){return sendTo;}
public void setSendTo(String sendTo){this.sendTo = sendTo;}
public String getSendCC(){return sendCC;}
public void setSendCC(String sendCC){this.sendCC = sendCC;}
public String getHostSMTP(){return hostSMTP;}
public void setHostSMTP(String hostSMTP){this.hostSMTP = hostSMTP;}
public String getUserName(){return userName;}
public void setUserName(String userName){this.userName = userName;}
public String getPassword(){return password;}
public void setPassword(String password){this.password = password;}
public String getMailSubject(){return mailSubject;}
public void setMailSubject(String mailSubject){this.mailSubject = mailSubject;}
public String getMailContent(){return mailContent;}
public void setMailContent(String mailContent){this.mailContent = mailContent;}
public ArrayList<String> getAttfile(){return attfile;}
public void setAttfile(ArrayList<String> attfile){this.attfile = attfile;}
}
/************/
package mail;
import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.util.Properties;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
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 mail.MailDao;
import mail.Mail;
/**邮件接口实现类 */
public class MailBean implements MailDao {
private static MailBean mjd;
public MailBean() {
super();
}
/** 单例模式 */
public static MailBean getInstance() {
if (mjd == null)
mjd = new MailBean();
return mjd;
}
/**发送邮件具体方法 */
public Boolean send(Mail mail) {
/** 创建session中所需要的Properties对象 */
Properties props = System.getProperties();
props.put("mail.smtp.host", mail.getHostSMTP());
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.timeout", 2500);
/** 创建邮件会话对象session */
AuthenticatorImpl authenticatorImpl = new AuthenticatorImpl();
authenticatorImpl.setName(mail.getUserName());
authenticatorImpl.setPassword(mail.getPassword());
Session mailSession = Session.getInstance(props,authenticatorImpl);
/** 构造MimeMessage<实际发送的电子邮件信息>,并设定基本的值 */
MimeMessage message = new MimeMessage(mailSession);
try {
/** 设置发件人 */
message.setFrom(new InternetAddress(mail.getSendFrom()));
/** 设置收件人 */
message.setRecipients(Message.RecipientType.TO, mail.getSendTo());
/** 设置抄送人 */
//message.setRecipients(Message.RecipientType.CC, mail.getSendCC());
/** 设置邮件主题 : 编码 */
message.setSubject(new String(mail.getMailSubject().getBytes("ISO-8859-1")), "GBK");
/** 构造Multipart : 该类是用于保存电子邮件内容的容器 :定义了添加、删除、获得电子邮件内容的方法 */
Multipart mp = new MimeMultipart();
/** 设置邮件的正文信息,并添加正文 : 编码 */
MimeBodyPart mbp = new MimeBodyPart();
mbp.setText(new String(mail.getMailContent().getBytes("ISO-8859-1")),"GBK");
mp.addBodyPart(mbp);
/** 将邮件内容添加到MimeMessage */
message.setContent(mp);
/** 设置邮件的发送日期 */
message.setSentDate(new Date());
/** 发送电子邮件 */
Transport.send(message);
return true;
} catch (AddressException e) {
System.err
.println("MailJdbcDao : send(MailBean mail) : AddressException : "
+ e.getMessage());
} catch (MessagingException e) {
System.err
.println("MailJdbcDao : send(MailBean mail) : MessagingException : "
+ e.getMessage());
} catch (UnsupportedEncodingException e) {
System.err
.println("MailJdbcDao : send(MailBean mail) : UnsupportedEncodingException : "
+ e.getMessage());
}
return false;
}
}
/***************/
package mail;
import mail.Mail;
public interface MailDao {
Boolean send(Mail mail);
}
/**************/
package mail;
import mail.Mail;
import mail.MailDao;
import mail.MailBean;
/** 邮件接口业务逻辑实现类 */
public class MailService {
private static MailService mailService;
public static MailDao md = new MailBean();
/** 单例模式 */
public static MailService getInstance() {
if (mailService == null)
mailService = new MailService();
return mailService;
}
private MailService() {
super();
}
/**发送邮件业务逻辑方法 */
public Boolean send() {
Mail mail=new Mail();
mail.setUserName("");
mail.setPassword("");
mail.setHostSMTP("");
mail.setSendFrom("");
mail.setSendTo("");
mail.setMailSubject("hello test ");
mail.setMailContent("this is a ..");
return md.send(mail);
}
public static void main(String[] args){
Boolean f=MailService.getInstance().send();
if(f) System.out.println("sucess");
else System.out.println("fail");
}
}
/***************************/
package mail;
import java.io.UnsupportedEncodingException;
public class Util {
// 在页面显示时用from8859()
public static String from8859(String source) {
try {
return new String(source.getBytes("iso-8859-1"));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return null;
}
// 往数据写入时用to8859()
public static String to8859(String source) {
try {
return new String(source.getBytes(), "iso-8859-1");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return null;
}
}
分享到:
相关推荐
本篇将深入探讨如何使用JavaMail实现发送邮件,以及相关的源码分析。 首先,我们需要了解JavaMail的基本组件。`javax.mail`库主要包含以下关键接口和类: 1. `Session`:这是JavaMail的核心,代表与邮件服务器的...
在这个资源中,我们将探讨如何使用 JavaMail 实现邮件的发送、接收、查看邮件数量以及未读邮件的标记为已读。 首先,让我们从发送邮件开始。在 JavaMail 中,你需要创建一个 `Session` 对象来配置邮件服务器的连接...
springboot集成javamail,实现发送邮件的功能,可以发送文本类型邮件,也可以发送html格式的邮件,其中整合了mysql、mybatis 具体集成步骤可以参考我的文章: https://www.jianshu.com/p/668d320b4981
- JavaMail集成:利用JavaMail API实现邮件的收发功能。 - 数据持久化:使用数据库存储用户信息、邮件数据等。 - 安全性考虑:加密传输、用户认证机制等。 #### 五、系统架构与关键技术 1. **MVC模式**:Model-...
本示例将介绍如何使用 JavaMail 实现发送邮件的功能。 首先,我们需要导入 JavaMail 相关的库。在 Maven 项目中,可以在 `pom.xml` 文件中添加以下依赖: ```xml <groupId>com.sun.mail</groupId> <artifactId>...
在描述中提到的“具备垃圾邮件过滤功能的邮箱”是一个基于JavaMail实现的邮件系统,其核心亮点在于增加了垃圾邮件过滤机制,以提高用户对邮件的管理效率。 首先,这个邮箱系统实现了邮件的基本功能,包括收发邮件。...
在这个项目中,我们将会探讨如何使用 JavaMail 实现单发和群发邮件的操作。 首先,为了使用 JavaMail 发送邮件,我们需要引入相关的依赖。在 Maven 项目中,可以在 `pom.xml` 文件中添加以下依赖: ```xml ...
在提供的压缩包文件“james+javaMail收发邮件”中,可能包含了示例代码和配置文件,供开发者参考和学习如何在实际项目中实现邮件收发功能,特别是处理中文内容和附件。通过理解和实践这些示例,开发者可以更好地掌握...
在JavaMail中,我们可以实现各种复杂的邮件功能,如添加附件、设置HTML内容、发送带有图片的邮件等。 在JavaMail中发送邮件主要涉及以下组件: 1. **Properties对象**:这个对象用来存储邮件服务器的相关配置信息...
在JavaMail中,我们主要依赖几个关键库,包括activation.jar、commons-email-1.1.jar和mail.jar,这些库提供了丰富的功能来实现邮件的收发。 activation.jar:这是JavaBeans Activation Framework (JAF)的一部分,...
以下是一个基于JavaMail API 实现邮件发送的类的基本结构和关键知识点: 1. **导入必要的库** 首先,我们需要导入JavaMail API 的相关jar包,如`javax.mail` 和 `javax.mail.internet` 包。在现代项目中,这些依赖...
在JavaMail中,我们可以使用 javax.mail 包中的接口和类来实现邮件服务。本教程将详细讲解如何使用 JavaMail 实现邮件发送功能,包括支持多个接收人、抄送人以及添加多个附件。 首先,确保你已经添加了 JavaMail 的...
JavaMail 是一个强大的开源库,专门用于在Java应用程序中实现电子邮件的发送和接收。它支持多种邮件协议,如SMTP(简单邮件传输协议)用于发送邮件,IMAP(因特网消息访问协议)和POP3(邮局协议)用于接收邮件。在...
在本文中,我们将深入探讨如何使用 JavaMail 实现群发邮件的功能。 首先,要使用 JavaMail 发送邮件,我们需要添加其依赖到项目中。如果你使用的是 Maven,可以在 `pom.xml` 文件中添加以下依赖: ```xml ...
在提供的文件列表中,我们看到一系列名为 MailUtils 的类,这很可能是实现邮件发送功能的工具类。 首先,`MailUtils.java` 可能是主的邮件工具类,包含了发送邮件的核心逻辑。其他如 `MailUtils2.java` 至 `...
用javaMail实现公司内网邮箱邮件发送,包括邮件附件,邮件发送人和抄送人
在本篇中,我们将深入探讨如何利用 JavaMail 实现发送邮件。 首先,要使用 JavaMail,我们需要引入必要的库。通常,这包括 javax.mail 和 javax.mail.internet 包。这两个包提供了创建、配置和发送邮件所需的所有...
在这个场景中,提到的"使用javaMail实现发送邮件所需的jar包集合"指的是JavaMail的核心依赖,通常包括以下三个关键的JAR文件: 1. **mail.jar**:这是JavaMail的核心库,包含了处理SMTP(简单邮件传输协议)、POP3...
本示例将重点介绍如何使用JavaMail库来实现163邮箱向腾讯邮件发送邮件的流程。 首先,确保你的项目中已经包含了JavaMail所需的依赖。通常,这可以通过在Maven或Gradle的构建文件中添加对应的依赖完成。例如,如果你...
javamail所需要的两个jar包。mail.jar,activation.jar 博文链接:https://javeye.iteye.com/blog/153827