`

java实现发送邮件功能

 
阅读更多
package util;
import java.io.InputStream;
import java.util.Properties;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.BodyPart;
import javax.mail.Message;
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;
/***
 *  Send edm to mail
 *  Jerry.li
 *  2012-05-02
 */
public class EdmMail {
  
     private static String MAIL_TITLE = null;
     private String mailServerHost = "";      
     private String fromAddress = ""; //发送人邮箱地址
     private String toAddress = "";   //收件人邮箱地址
     private MimeMessage mimemsg;     //Mime邮件对象
     private Session session;         //邮件会话对象
     private Properties properties;   //系统属性
     private Multipart part;          //Multipart对象:邮件内容,标题,附件等内容均添加到其中后再生成MimeMessage对象
     private String username = "";    //设置smtp的用户名
     private String password = "";    //设置smtp的密码
     private String profile = "search.properties";
      
      
     private EdmMail(){
      getValues();
      setSmtpHost(mailServerHost);
      getMailSession();
     }
      
     public EdmMail(String sub){
      this();
      MAIL_TITLE = sub;
     }
      
     private boolean getValues(){
      Properties proties = null;
      InputStream input = null;
      try {
       input = EdmMail.class.getClassLoader().getResourceAsStream(profile);
    proties = new Properties();
    proties.load(input);
    mailServerHost = proties.getProperty("MAIL_HOST");
    fromAddress = proties.getProperty("MAIL_FROM");
    username = proties.getProperty("MAIL_USERNAME");
    password = proties.getProperty("MAIL_PASSWORD");
    toAddress = proties.getProperty("MAILTO_LIST");
    return true;
   } catch (Exception e) {
             System.out.println("读取配置文件出错!"+e);
             return false;
   }
     }
      
     /***
      * 设置SMTP主机
      */
  private void setSmtpHost(String mailhost){
      if(properties == null){
       properties = System.getProperties(); //获得系统属性
      }
      properties.setProperty("mail.smtp.host", mailhost);
     }
   
  /***
   *  获得邮件会话对象
   *  创建MimeMessage对象
   */
  private boolean getMailSession(){
   try {
    session = Session.getDefaultInstance(properties,null);
   } catch (Exception e) {
    System.out.println("获取邮件会话对象出错,原因:"+e);
    return false;
   }
   try {
    mimemsg = new MimeMessage(session);
    part = new MimeMultipart();
    return true;
   } catch (Exception e) {
             System.out.println("创建Mime邮件对象出错,原因:"+e);
             return false;
   }
  }
   
  /***
   * 设置smtp身份认证
   * mail.smtp.auth = true
   */
  private void setSmtpAuth(boolean bool){
      if(properties == null){
       properties = System.getProperties(); //获得系统属性
      }
      if(bool){
       properties.put("mail.smtp.auth", "true");
      }else{
       properties.put("mail.smtp.auth", "false");
      }
  }
   
  /***
   *  设置邮件的主题
   */
     private boolean setMailSub(String mailsubject){
      try {
       mimemsg.setSubject(mailsubject, "GBK");
    return true;
   } catch (Exception e) {
    System.out.println("设置邮件标题出错,原因:"+e);
    return false;
   }
     }
      
     /***
      * 设置邮件体格式
      */
     private boolean setMailBody(String mailBody){
      BodyPart bdyPart = new MimeBodyPart();
      try {
    bdyPart.setContent(mailBody, "text/html;charset=GBK");
    part.addBodyPart(bdyPart);
    return true;
   } catch (Exception e) {
    System.out.println("设置邮件体格式出错,原因:"+e);
    return false;
   }
     }
      
     /***
      *  添加邮件附件
      */
      
     private boolean addAttach(String filePath){
      BodyPart bdy = new MimeBodyPart();
      try {
       FileDataSource dataSource = new FileDataSource(filePath);
    bdy.setDataHandler(new DataHandler(dataSource));
    bdy.setFileName(dataSource.getName());   //设置附件名
    part.addBodyPart(bdy);
    return true;
   } catch (Exception e) {
    System.out.println("添加附件:"+filePath+"出错,原因:"+e);
    return false;
   }
     }
      
     /***
      *  设置邮件发送人
      */
     private boolean setMailFrom(String from){
      try {
       mimemsg.setFrom(new InternetAddress(from));
    return true;
   } catch (Exception e) {
    System.out.println("设置邮件发送人:"+from+"出错,原因:"+e);
    return false;
   }
     }
      
     /***
      *  设置邮件接收人
      */
     private boolean setMailTo(String mailto){
      if(mailto == null){
       return false;
      }
      try {
       mimemsg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(mailto));
    return true;
      }catch (Exception e) {
            System.out.println("设置邮件接收人:"+mailto+"出错,原因:"+e);
            return false;
      }
     }
      
     /***
      *  发送邮件
      */
     private boolean sendout(){
      try {
       mimemsg.setContent(part);
       mimemsg.saveChanges();
    System.out.println("开始发送邮件......");
    Session mailSession = Session.getInstance(properties, null);
    Transport tsport = mailSession.getTransport("smtp");
    tsport.connect((String)properties.get("mail.smtp.host"), username, password);
    tsport.sendMessage(mimemsg, mimemsg.getRecipients(Message.RecipientType.TO));
    tsport.close();
    System.out.println("发送邮件成功!");
    return true;
   } catch (Exception e) {
             System.out.println("发送邮件出错原因:"+e);
             return false;
   }
     }
      
     //
     public void sendMail(String fileAttach){
      //拼接整个邮件的内容
      StringBuffer content = new StringBuffer();
      //头部
      content.append("<html>");
      content.append("<head><META content='text/html; charset=gbk' http-equiv=Content-Type>");
      content.append("<META name=GENERATOR content='MSHTML 8.00.6001.18702'>");
      content.append("<style type='text/css'>");
      content.append(".STYLE1 {color: #000000}");
      content.append("TABLE {FONT-SIZE: 12px; COLOR: #444444;LINE-HEIGHT: 14px; FONT-FAMILY: '宋体', 'Arial'; TEXT-DECORATION: none;}");
      content.append(".STYLE3 { font-size: 13px;color: #FD9800; font-weight: bold;}");
      content.append("</style>");
      content.append("</head>");
      //显示邮件内容
      content.append("<body>");
      content.append("<table width='749px' align='left'>");
      content.append("<tr><td width='749' height='10px'></td></tr>");
      content.append("<tr><td><p align='left'><font size=2>for test!</font></p></td></tr>");
      content.append("</table>");
      //content.append("");
      content.append("</body>");
      content.append("</html>");
       
      System.out.println("content********"+content);
       
      setSmtpAuth(false);
      if(setMailSub(MAIL_TITLE) == false){
       return;
      }
      if(setMailBody(content.toString()) == false){
       return;
      }
      if(setMailTo(toAddress) == false){
       return;
      }
      if(setMailFrom(fromAddress) == false){
       return;
      }
       
      if(addAttach(fileAttach) == false){
       return;
      }
      if(sendout()== false){
       return;
      }
     }
      
     public static void main(String[] args) {
      EdmMail m = new EdmMail("test");
      //附件的位置
      m.sendMail("D:\\workspace\\test.xls");
  }
}
分享到:
评论

相关推荐

    java实现发送邮件功能源码+jar

    本教程将深入讲解如何使用Java实现邮件发送功能,并提供相关的源码和jar包。 1. **JavaMail API**: JavaMail API 是Java平台上用于处理电子邮件的主要库,它提供了一系列的接口和类,使得开发者能够方便地创建、...

    java实现发送邮件功能demo

    本文将深入探讨如何使用JavaMail API在Java应用程序中实现发送邮件的功能,同时也会涉及验证码验证以及网页版邮件发送的实现。 首先,要发送邮件,我们需要引入JavaMail的相关库。通常,这包括`javax.mail`和`javax...

    Java实现发送邮件功能

    本篇文章将深入讲解如何使用Java实现发送邮件的功能。 首先,要使用Java Mail API,你需要在项目中引入相应的依赖。对于Maven项目,可以在pom.xml文件中添加以下依赖: ```xml &lt;groupId&gt;com.sun.mail&lt;/groupId&gt; ...

    写java程序实现发邮件功能

    本篇文章将深入探讨如何使用Java编写程序来实现邮件的发送,包括发送纯文本邮件、带有附件的邮件、包含图片的邮件以及在邮件中显示图片。 首先,我们得知道JavaMail API是实现邮件发送功能的关键库。它提供了一系列...

    java 实现发送邮件功能

    简单 一个demo javamail 发送邮件。很容易学会。

    java实现发送邮件功能的jar包

    Java发送邮件功能是Java开发中常见的一项任务,主要用于企业级应用中的通知、验证或客户服务等场景。JavaMail API是Java平台上的一个标准库,用于处理电子邮件。本篇将详细介绍如何利用JavaMail API来实现发送邮件的...

    java实现邮件发送(三种发送方式都有)

    在这个主题下,我们将探讨三种Java实现邮件发送的方式,以及如何通过提供的代码和参考资料进行实践。 首先,让我们了解一下基本概念。邮件发送主要涉及到SMTP(Simple Mail Transfer Protocol)和POP3(Post Office...

    Java实现发送邮件功能时碰到的坑

    在Java编程中,发送邮件是一项常见的任务,通常我们会利用JavaMail API来实现这一功能。本文主要探讨了在使用Java发送邮件时遇到的问题以及如何解决,特别是涉及到中国移动邮箱在Linux服务器上的配置。 首先,问题...

    JavaMail-java实现发送邮件功能

    JavaMail是Java编程语言中用于处理电子邮件的API,它提供了丰富的功能,如发送邮件、接收邮件、处理附件...通过理解JavaMail API的工作原理,以及如何配置和使用它,你可以成功地在Java应用程序中实现发送邮件的功能。

    java发送邮件功能

    Java发送邮件功能是Java开发中常见的一项任务,它允许开发者通过编程的方式实现电子邮件的发送,包括正文内容、附件以及抄送等高级功能。在Java中,我们主要利用JavaMail API来实现这一目标。 JavaMail API是一个...

    java实现邮件发送功能

    本教程将深入探讨如何使用Java实现这一功能。Java提供了多种库来处理邮件发送,其中最常用的便是JavaMail API。 JavaMail API是Java平台上用于发送和接收电子邮件的标准API,它提供了丰富的接口和类来处理邮件协议...

    java实现发送邮件

    本教程将详细讲解如何使用Java实现发送邮件,包括发送图片和附件。 首先,你需要在项目中引入Java Mail API的相关依赖。通常我们使用Maven,可以在pom.xml文件中添加以下依赖: ```xml &lt;groupId&gt;...

    Java发送outlook邮件

    在这个场景下,我们将深入探讨如何使用Java来实现这个功能,以及涉及的相关知识点。 首先,Java发送邮件主要依赖于JavaMail API,这是一个开源的Java库,它提供了标准的JavaMail API规范,允许开发者发送、接收和...

    java实现邮件发送

    本文将基于提供的描述及部分代码片段,详细介绍如何利用Java实现邮件发送功能。本教程涉及的关键知识点包括:配置邮件服务器、设置发件人与收件人信息、处理邮件验证以及附件的添加。 #### 配置邮件服务器 在发送...

    java实现发送邮件jar文件

    这个"java实现发送邮件jar文件"是JavaMail的一个实现,封装了SMTP(简单邮件传输协议)和其他相关协议,使得开发者能够轻松地集成邮件功能到他们的项目中。 在Java中实现邮件发送,首先需要引入JavaMail的相关依赖...

    Java实现发送邮件.pdf

    ### Java实现发送邮件知识点详解 #### 一、引言 电子邮件是互联网中最为常见的通信方式之一,被广泛应用于用户激活、密码重置、营销推广等多个场景。为了满足自动化的需求,通常采用程序化的方式进行邮件的发送。...

    java发送邮件工具

    java发送邮件工具类,用于java程序实现邮件的发送功能

Global site tag (gtag.js) - Google Analytics