`
小皮球
  • 浏览: 33952 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

javaMail 例子应用

阅读更多
今天看了一下发送邮件的例子:

感谢这篇文章的帮助,原文的地址是:

http://www.blogjava.net/wangfun/archive/2009/04/15/265748.html

现在做下备忘:

第一个类:MailSenderInfo.java
package com.util.mail;  
/** *//**  
* 发送邮件需要使用的基本信息
*author by wangfun
http://www.5a520.cn 小说520 
*/   
import java.util.Properties;   
public class MailSenderInfo {   
    // 发送邮件的服务器的IP和端口   
    private String mailServerHost;   
    private String mailServerPort = "25";   
    // 邮件发送者的地址   
    private String fromAddress;   
    // 邮件接收者的地址   
    private String toAddress;   
    // 登陆邮件发送服务器的用户名和密码   
    private String userName;   
    private String password;   
    // 是否需要身份验证   
    private boolean validate = false;   
    // 邮件主题   
    private String subject;   
    // 邮件的文本内容   
    private String content;   
    // 邮件附件的文件名   
    private String[] attachFileNames;     
    /** *//**  
      * 获得邮件会话属性  
      */   
    public Properties getProperties(){   
      Properties p = new Properties();   
      p.put("mail.smtp.host", this.mailServerHost);   
      p.put("mail.smtp.port", this.mailServerPort);   
      p.put("mail.smtp.auth", validate ? "true" : "false");   
      return p;   
    }   
    public String getMailServerHost() {   
      return mailServerHost;   
    }   
    public void setMailServerHost(String mailServerHost) {   
      this.mailServerHost = mailServerHost;   
    }  
    public String getMailServerPort() {   
      return mailServerPort;   
    }  
    public void setMailServerPort(String mailServerPort) {   
      this.mailServerPort = mailServerPort;   
    }  
    public boolean isValidate() {   
      return validate;   
    }  
    public void setValidate(boolean validate) {   
      this.validate = validate;   
    }  
    public String[] getAttachFileNames() {   
      return attachFileNames;   
    }  
    public void setAttachFileNames(String[] fileNames) {   
      this.attachFileNames = fileNames;   
    }  
    public String getFromAddress() {   
      return fromAddress;   
    }   
    public void setFromAddress(String fromAddress) {   
      this.fromAddress = fromAddress;   
    }  
    public String getPassword() {   
      return password;   
    }  
    public void setPassword(String password) {   
      this.password = password;   
    }  
    public String getToAddress() {   
      return toAddress;   
    }   
    public void setToAddress(String toAddress) {   
      this.toAddress = toAddress;   
    }   
    public String getUserName() {   
      return userName;   
    }  
    public void setUserName(String userName) {   
      this.userName = userName;   
    }  
    public String getSubject() {   
      return subject;   
    }  
    public void setSubject(String subject) {   
      this.subject = subject;   
    }  
    public String getContent() {   
      return content;   
    }  
    public void setContent(String textContent) {   
      this.content = textContent;   
    }   
}  


第二个类:SimpleMailSender.java
package com.util.mail;  
 
import java.util.Date;   
import java.util.Properties;  
import javax.mail.Address;   
import javax.mail.BodyPart;   
import javax.mail.Message;   
import javax.mail.MessagingException;   
import javax.mail.Multipart;   
import javax.mail.Session;   
import javax.mail.Transport;   
import javax.mail.internet.InternetAddress;   
import javax.mail.internet.MimeBodyPart;   
import javax.mail.internet.MimeMessage;   
import javax.mail.internet.MimeMultipart;   
 
/** *//**  
* 简单邮件(不带附件的邮件)发送器  
http://www.bt285.cn BT下载
*/   
public class SimpleMailSender  {   
/** *//**  
  * 以文本格式发送邮件  
  * @param mailInfo 待发送的邮件的信息  
  */   
    public boolean sendTextMail(MailSenderInfo mailInfo) {   
      // 判断是否需要身份认证   
      MyAuthenticator authenticator = null;   
      Properties pro = mailInfo.getProperties();  
      if (mailInfo.isValidate()) {   
      // 如果需要身份认证,则创建一个密码验证器   
        authenticator = new MyAuthenticator(mailInfo.getUserName(), mailInfo.getPassword());   
      }  
      // 根据邮件会话属性和密码验证器构造一个发送邮件的session   
      Session sendMailSession = Session.getDefaultInstance(pro,authenticator);   
      try {   
      // 根据session创建一个邮件消息   
      Message mailMessage = new MimeMessage(sendMailSession);   
      // 创建邮件发送者地址   
      Address from = new InternetAddress(mailInfo.getFromAddress());   
      // 设置邮件消息的发送者   
      mailMessage.setFrom(from);   
      // 创建邮件的接收者地址,并设置到邮件消息中   
      Address to = new InternetAddress(mailInfo.getToAddress());   
      mailMessage.setRecipient(Message.RecipientType.TO,to);   
      // 设置邮件消息的主题   
      mailMessage.setSubject(mailInfo.getSubject());   
      // 设置邮件消息发送的时间   
      mailMessage.setSentDate(new Date());   
      // 设置邮件消息的主要内容   
      String mailContent = mailInfo.getContent();   
      mailMessage.setText(mailContent);   
      // 发送邮件   
      Transport.send(mailMessage);  
      return true;   
      } catch (MessagingException ex) {   
          ex.printStackTrace();   
      }   
      return false;   
    }   
      
    /** *//**  
      * 以HTML格式发送邮件  
      * @param mailInfo 待发送的邮件信息  
      */   
    public static boolean sendHtmlMail(MailSenderInfo mailInfo){   
      // 判断是否需要身份认证   
      MyAuthenticator authenticator = null;  
      Properties pro = mailInfo.getProperties();  
      //如果需要身份认证,则创建一个密码验证器    
      if (mailInfo.isValidate()) {   
        authenticator = new MyAuthenticator(mailInfo.getUserName(), mailInfo.getPassword());  
      }   
      // 根据邮件会话属性和密码验证器构造一个发送邮件的session   
      Session sendMailSession = Session.getDefaultInstance(pro,authenticator);   
      try {   
      // 根据session创建一个邮件消息   
      Message mailMessage = new MimeMessage(sendMailSession);   
      // 创建邮件发送者地址   
      Address from = new InternetAddress(mailInfo.getFromAddress());   
      // 设置邮件消息的发送者   
      mailMessage.setFrom(from);   
      // 创建邮件的接收者地址,并设置到邮件消息中   
      Address to = new InternetAddress(mailInfo.getToAddress());   
      // Message.RecipientType.TO属性表示接收者的类型为 TO   
      mailMessage.setRecipient(Message.RecipientType.TO,to);   
      // 设置邮件消息的主题   
      mailMessage.setSubject(mailInfo.getSubject());   
      // 设置邮件消息发送的时间   
      mailMessage.setSentDate(new Date());   
      // MiniMultipart类是一个容器类,包含MimeBodyPart类型的对象   
      Multipart mainPart = new MimeMultipart();   
      // 创建一个包含HTML内容的MimeBodyPart   
      BodyPart html = new MimeBodyPart();   
      // 设置HTML内容   
      html.setContent(mailInfo.getContent(), "text/html; charset=utf-8");   
      mainPart.addBodyPart(html);   
      // 将MiniMultipart对象设置为邮件内容   
      mailMessage.setContent(mainPart);   
      // 发送邮件   
      Transport.send(mailMessage);   
      return true;   
      } catch (MessagingException ex) {   
          ex.printStackTrace();   
      }   
      return false;   
    }   
}  

第三个类:MyAuthenticator.java


package com.util.mail;  
 
import javax.mail.*;  
    
public class MyAuthenticator extends Authenticator{  
    String userName=null;  
    String password=null;  
       
    public MyAuthenticator(){  
    }  
    public MyAuthenticator(String username, String password) {   
        this.userName = username;   
        this.password = password;   
    }   
    protected PasswordAuthentication getPasswordAuthentication(){  
        return new PasswordAuthentication(userName, password);  
    }  
}  


下面给出使用上面三个类的代码:
public static void main(String[] args){  
         //这个类主要是设置邮件  
      MailSenderInfo mailInfo = new MailSenderInfo();   
      mailInfo.setMailServerHost("smtp.163.com");   
      mailInfo.setMailServerPort("25");   
      mailInfo.setValidate(true);   
      mailInfo.setUserName("han2000lei@163.com");   
      mailInfo.setPassword("**********");//您的邮箱密码   
      mailInfo.setFromAddress("han2000lei@163.com");   
      mailInfo.setToAddress("han2000lei@163.com");   
      mailInfo.setSubject("设置邮箱标题 如 http://www.guihua.org 中国桂花网");   
      mailInfo.setContent("设置邮箱内容 如 http://www.guihua.org 中国桂花网 是中国最大桂花网站==");   
         //这个类主要来发送邮件  
      SimpleMailSender sms = new SimpleMailSender();  
          sms.sendTextMail(mailInfo);//发送文体格式   
          sms.sendHtmlMail(mailInfo);//发送html格式  
    } 

分享到:
评论

相关推荐

    javamail例子

    在提供的压缩包文件“javamail例子”中,很可能包含了一个完整的 JavaMail 示例项目,你可以通过运行其中的代码来实践邮件发送的过程,这将有助于加深理解和掌握。记得查看博客文章...

    javamail例子以及jar包

    JavaMail 是一个开源的 Java API,它允许程序员通过编程方式在 Java 应用程序中发送和接收电子邮件。这个API提供了一套完整的邮件处理接口,包括SMTP(简单邮件传输协议)、POP3(邮局协议版本3)和IMAP(因特网消息...

    简单的javamail例子 (源码)

    JavaMail 广泛应用于企业级应用、自动化任务通知系统、客户服务等场景。例如,用户注册时发送验证邮件、密码找回、订单确认通知等。 #### 二、JavaMail配置与环境搭建 在使用 JavaMail 之前,需要进行一些基本的...

    javamail例子程序

    在JavaMail的例子程序中,我们通常会涵盖以下几个核心知识点: 1. **JavaMail API 概述**:JavaMail API 提供了多种接口和类,如 `Session`、`Message`、`Transport` 和 `MimeMessage` 等,它们是构建邮件功能的...

    JAVAMAIL例子

    在“JAVAMAIL例子”中,我们将探讨如何使用JavaMail API来实现邮件的发送功能。下面我们将深入讲解相关知识点。 1. **JavaMail API介绍** JavaMail API 是一套Java API,它为开发人员提供了一组接口和类,用于在...

    JavaMail很好的例子

    JavaMail 是一个强大的开源库,专门用于在Java应用程序中处理电子邮件。这个例子是关于如何使用JavaMail进行...通过深入学习和实践提供的JavaMail例子,可以轻松掌握发送、接收和管理邮件的关键技术,提升开发效率。

    javaMail例子

    这个例子展示了如何使用 JavaMail 发送一封简单的文本邮件。下面将详细解释这个 JavaMail 示例中的关键知识点: 1. **导入的库**:首先,我们导入了几个必要的 JavaMail 相关的库,包括 `java.io`, `java.util`, `...

    JavaMail 1.6.0 的官方例子

    在 JavaMail 1.6.0 的官方例子中,我们可以学习到以下几个关键知识点: 1. **MIME 处理**:JavaMail 支持 Multipurpose Internet Mail Extensions (MIME),这使得我们能够发送包含文本、图片、音频、视频等多种类型...

    JavaMail例子

    JavaMail 是一个强大的开源库,专门用于在Java应用程序中处理电子邮件。它提供了全面的API,使得开发者能够方便地发送、接收和操作邮件。本示例将深入探讨如何使用JavaMail来实现一个简单的发送邮件的功能。 首先,...

    JavaMail发送邮件的例子

    在Struts2框架中集成JavaMail服务,可以方便地在Web应用中实现邮件的发送功能。下面我们将深入探讨JavaMail的基本概念、如何使用JavaMail发送邮件以及在Struts2框架中的实现方式。 JavaMail API主要包括以下组件: ...

    用Java类实现JavaMail发送邮件的例子

    这个例子展示了如何使用JavaMail API的基本功能,包括SMTP认证、添加附件和发送HTML邮件,这对于开发Web应用或其他需要邮件功能的应用来说非常实用。通过扩展这个例子,你可以实现更复杂的邮件服务,如接收邮件、...

    javamail架包、例子

    JavaMail 是一个开源的 Java API,它允许开发者在 Java 应用程序中发送和接收电子邮件。这个资源包包含了 JavaMail 开发所需的所有关键组件,包括 javax.mail 和 javax.mail.internet 包,这两个包提供了处理邮件的...

    javamail的一个例子以及javamail.ar包

    JavaMail 是一个强大的开源库,用于在Java应用程序中处理电子邮件。这个例子展示了如何使用JavaMail API从163邮箱向QQ邮箱发送邮件。在Java开发中,JavaMail API提供了丰富的功能,包括创建、读取、发送和管理电子...

    javamail发送邮件例子

    JavaMail 是一个开源库,它提供了在 Java 应用程序中发送和接收电子邮件的功能。它扩展了 Java EE 的 javax.mail 包,提供了更强大的邮件处理能力。在标题和描述中提到的,我们将讨论如何使用 JavaMail 实现发送邮件...

    JavaMail发邮件原代码例子

    压缩包中的文件名“JavaMail发邮件原代码例子”可能包含的就是一个完整的Java类,里面包含了上述的代码实现,你可以直接运行这个示例来发送邮件。在实际应用中,可能还需要处理附件、HTML格式的邮件内容、多收件人等...

    javamail 包含的包及简单例子

    JavaMail 是一个开源的 Java API,它允许开发者在 Java 应用程序中发送和接收电子邮件。这个API提供了与多种邮件服务器交互的能力,包括SMTP、POP3和IMAP协议。在"javamail 包含的包及简单例子"中,我们主要会探讨...

Global site tag (gtag.js) - Google Analytics