`
verytiny
  • 浏览: 368047 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

用javamail实现发邮件

    博客分类:
  • J2EE
F# 
阅读更多

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实现发送邮件,以及相关的源码分析。 首先,我们需要了解JavaMail的基本组件。`javax.mail`库主要包含以下关键接口和类: 1. `Session`:这是JavaMail的核心,代表与邮件服务器的...

    使用javaMail发邮件及收取邮箱未读邮件并标记为已读

    在这个资源中,我们将探讨如何使用 JavaMail 实现邮件的发送、接收、查看邮件数量以及未读邮件的标记为已读。 首先,让我们从发送邮件开始。在 JavaMail 中,你需要创建一个 `Session` 对象来配置邮件服务器的连接...

    springboot集成javamail实现发送邮件功能

    springboot集成javamail,实现发送邮件的功能,可以发送文本类型邮件,也可以发送html格式的邮件,其中整合了mysql、mybatis 具体集成步骤可以参考我的文章: https://www.jianshu.com/p/668d320b4981

    基于JaVaMail的Web邮件客户端的设计与实现

    - JavaMail集成:利用JavaMail API实现邮件的收发功能。 - 数据持久化:使用数据库存储用户信息、邮件数据等。 - 安全性考虑:加密传输、用户认证机制等。 #### 五、系统架构与关键技术 1. **MVC模式**:Model-...

    javaMail实现发送邮件的demo

    本示例将介绍如何使用 JavaMail 实现发送邮件的功能。 首先,我们需要导入 JavaMail 相关的库。在 Maven 项目中,可以在 `pom.xml` 文件中添加以下依赖: ```xml &lt;groupId&gt;com.sun.mail&lt;/groupId&gt; &lt;artifactId&gt;...

    JavaMail 具备垃圾邮件过滤功能的邮箱

    在描述中提到的“具备垃圾邮件过滤功能的邮箱”是一个基于JavaMail实现的邮件系统,其核心亮点在于增加了垃圾邮件过滤机制,以提高用户对邮件的管理效率。 首先,这个邮箱系统实现了邮件的基本功能,包括收发邮件。...

    javaMail实现单发/群发邮件操作

    在这个项目中,我们将会探讨如何使用 JavaMail 实现单发和群发邮件的操作。 首先,为了使用 JavaMail 发送邮件,我们需要引入相关的依赖。在 Maven 项目中,可以在 `pom.xml` 文件中添加以下依赖: ```xml ...

    james和javamail实现邮件收发(带发送附件)

    在提供的压缩包文件“james+javaMail收发邮件”中,可能包含了示例代码和配置文件,供开发者参考和学习如何在实际项目中实现邮件收发功能,特别是处理中文内容和附件。通过理解和实践这些示例,开发者可以更好地掌握...

    javaMail 发邮件

    在JavaMail中,我们可以实现各种复杂的邮件功能,如添加附件、设置HTML内容、发送带有图片的邮件等。 在JavaMail中发送邮件主要涉及以下组件: 1. **Properties对象**:这个对象用来存储邮件服务器的相关配置信息...

    使用javaMail实现收发邮件

    在JavaMail中,我们主要依赖几个关键库,包括activation.jar、commons-email-1.1.jar和mail.jar,这些库提供了丰富的功能来实现邮件的收发。 activation.jar:这是JavaBeans Activation Framework (JAF)的一部分,...

    利用javamail api实现的邮件发送类

    以下是一个基于JavaMail API 实现邮件发送的类的基本结构和关键知识点: 1. **导入必要的库** 首先,我们需要导入JavaMail API 的相关jar包,如`javax.mail` 和 `javax.mail.internet` 包。在现代项目中,这些依赖...

    javamail实现邮件发送(支持多接收人、多附件)

    在JavaMail中,我们可以使用 javax.mail 包中的接口和类来实现邮件服务。本教程将详细讲解如何使用 JavaMail 实现邮件发送功能,包括支持多个接收人、抄送人以及添加多个附件。 首先,确保你已经添加了 JavaMail 的...

    javamail 收发电子邮件

    JavaMail 是一个强大的开源库,专门用于在Java应用程序中实现电子邮件的发送和接收。它支持多种邮件协议,如SMTP(简单邮件传输协议)用于发送邮件,IMAP(因特网消息访问协议)和POP3(邮局协议)用于接收邮件。在...

    javamail实现群发邮件

    在本文中,我们将深入探讨如何使用 JavaMail 实现群发邮件的功能。 首先,要使用 JavaMail 发送邮件,我们需要添加其依赖到项目中。如果你使用的是 Maven,可以在 `pom.xml` 文件中添加以下依赖: ```xml ...

    javaMail学习(七)——使用javaMail发复杂邮件

    在提供的文件列表中,我们看到一系列名为 MailUtils 的类,这很可能是实现邮件发送功能的工具类。 首先,`MailUtils.java` 可能是主的邮件工具类,包含了发送邮件的核心逻辑。其他如 `MailUtils2.java` 至 `...

    javamail 实现公司内网邮件发送

    用javaMail实现公司内网邮箱邮件发送,包括邮件附件,邮件发送人和抄送人

    javamail实现发送邮件

    在本篇中,我们将深入探讨如何利用 JavaMail 实现发送邮件。 首先,要使用 JavaMail,我们需要引入必要的库。通常,这包括 javax.mail 和 javax.mail.internet 包。这两个包提供了创建、配置和发送邮件所需的所有...

    使用javaMail实现发送邮件所需的jar包集合

    在这个场景中,提到的"使用javaMail实现发送邮件所需的jar包集合"指的是JavaMail的核心依赖,通常包括以下三个关键的JAR文件: 1. **mail.jar**:这是JavaMail的核心库,包含了处理SMTP(简单邮件传输协议)、POP3...

    javamail实现邮箱与邮箱发送邮件

    本示例将重点介绍如何使用JavaMail库来实现163邮箱向腾讯邮件发送邮件的流程。 首先,确保你的项目中已经包含了JavaMail所需的依赖。通常,这可以通过在Maven或Gradle的构建文件中添加对应的依赖完成。例如,如果你...

    javamail实现对邮件的发送和收取(一)

    javamail所需要的两个jar包。mail.jar,activation.jar 博文链接:https://javeye.iteye.com/blog/153827

Global site tag (gtag.js) - Google Analytics