`

java使用javax.mail发邮件

    博客分类:
  • Java
 
阅读更多

1, 引用jar 包

 <dependency>
    <groupId>com.sun.mail</groupId>
    <artifactId>javax.mail</artifactId>
    <version>1.5.6</version>
   </dependency>

 2, 代码实现, 不解释

 

import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.PrintStream;
import java.util.Date;
import java.util.Properties;
import java.util.StringTokenizer;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.BodyPart;
import javax.mail.Message.RecipientType;
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;

public class EmailSender
{
  private String from = "darren.li@126.com";
  private String to = "darren.li@126.com";
  private String mail_subject = "TEST";
  private String mail_message = "TEST";
  private String filename;
  private String urlPath = "";
  private String attachmentFlag;
  private String messageType = "text";
  private String host = "xx.x.x.com";

  public static void main(String[] args) throws Exception {
    if (args.length > 0)
      try
      {
        if (args.length == 1) {
          Properties properties = new Properties();
          BufferedInputStream stream = new BufferedInputStream(new FileInputStream(args[0]));
          properties.load(stream);
          stream.close();

          EmailSender es = new EmailSender();
          es.setFrom(properties.getProperty("ALERT_FROM"));
          es.setTo(properties.getProperty("ALERT_TO"));
          es.setHost(properties.getProperty("ALERT_HOST"));
          es.setMessageType(properties.getProperty("ALERT_TYPE"));
          es.setMail_subject(properties.getProperty("ALERT_SUBJECT") + new Date().toString());

          es.setFilename(properties.getProperty("ALERT_CONTENT"));
          es.setAttachmentFlag("N");

          StringTokenizer stk_to = new StringTokenizer(properties.getProperty("ALERT_TO"), ";");
          String mailTo = "";
          while (stk_to.hasMoreTokens())
            try {
              mailTo = stk_to.nextToken();
              es.setTo(mailTo);
              String sResult = es.sendMail();
              System.out.println("Mail: " + mailTo + ":" + sResult);
            } catch (Exception e) {
              System.out.println("Mail: " + mailTo + ":" + e.getMessage());
            }
          return;
        }EmailSender es = new EmailSender();

        es.setFrom(args[0]);
        es.setTo(args[1]);
        es.setHost(args[2]);
        es.setMessageType("file");
        es.setMail_subject(args[3]);
        es.setUrlPath(args[4]);
        es.setFilename(args[5]);
        es.setAttachmentFlag("Y");
        try
        {
          String sResult = es.sendMail();
          System.out.println("Mail: " + es.getTo() + ":" + sResult);
        } catch (Exception e) {
          System.out.println("Mail: " + es.getTo() + ":" + e.getMessage());
        }

      }
      catch (Exception e)
      {
        System.out.println("Error Message: " + e.getMessage());
      }
    else
      System.out.println("Usage: emailSender.jar [conf_file] | emailSender.jar [from][to][host][subject][path][file]");
  }

  public String sendMail() throws Exception
  {
    String sResult = "";
    try
    {
      String success = "N";
      StringTokenizer stk_to = new StringTokenizer(getTo(), ";");
      StringTokenizer stk_from = new StringTokenizer(getFrom(), ";");
      Properties props = System.getProperties();
      props.put("mail.smtp.host", this.host);
      props.put("mail.smtp.auth", "false");
      Session session = Session.getDefaultInstance(props, null);
      MimeMessage message = new MimeMessage(session);
      message.setFrom(new InternetAddress(stk_from.nextToken()));
      while (stk_to.hasMoreTokens()) {
        String mailTo = stk_to.nextToken();
        message.addRecipient(Message.RecipientType.TO, new InternetAddress(mailTo));
      }
      message.setSubject(getMail_subject());
      BodyPart messageBodyPart = new MimeBodyPart();

      if ((getAttachmentFlag() != null) && (getAttachmentFlag().equalsIgnoreCase("y"))) {
        Multipart multipart = new MimeMultipart();
        multipart.addBodyPart(messageBodyPart);
        messageBodyPart = new MimeBodyPart();
        messageBodyPart.setDataHandler(new DataHandler(new FileDataSource(this.urlPath + this.filename)));
        messageBodyPart.setFileName(getFilename());
        multipart.addBodyPart(messageBodyPart);
        message.setContent(multipart);
      }

      if ((getMessageType() != null) && (getMessageType().equalsIgnoreCase("file"))) {
        BufferedReader in = new BufferedReader(new FileReader(this.urlPath + this.filename));
        String line = null;
        StringBuffer text = new StringBuffer();
        while ((line = in.readLine()) != null) {
          text.append(line + "\n");
        }
        in.close();
        setMail_message(text.toString());
      }
      messageBodyPart.setText(getMail_message());
      Multipart multipart = new MimeMultipart();
      multipart.addBodyPart(messageBodyPart);
      message.setContent(multipart);

      Transport.send(message);
      success = "Y";
      return sResult + success;
    }
    catch (Exception e)
    {
      sResult = sResult + " Exception " + e.getMessage();
    }return sResult;
  }

  public String getFrom()
  {
    return this.from;
  }

  public void setFrom(String from) {
    this.from = from;
  }

  public String getTo() {
    return this.to;
  }

  public void setTo(String to) {
    this.to = to;
  }

  public String getMail_subject() {
    return this.mail_subject;
  }

  public void setMail_subject(String mail_subject) {
    this.mail_subject = mail_subject;
  }

  public String getMail_message() {
    return this.mail_message;
  }

  public void setMail_message(String mail_message) {
    this.mail_message = mail_message;
  }

  public String getFilename() {
    return this.filename;
  }

  public void setFilename(String filename) {
    this.filename = filename;
  }

  public String getUrlPath() {
    return this.urlPath;
  }

  public void setUrlPath(String urlPath) {
    this.urlPath = urlPath;
  }

  public String getAttachmentFlag() {
    return this.attachmentFlag;
  }

  public void setAttachmentFlag(String attachmentFlag) {
    this.attachmentFlag = attachmentFlag;
  }

  public String getMessageType() {
    return this.messageType;
  }

  public void setMessageType(String messageType) {
    this.messageType = messageType;
  }

  public void setHost(String host) {
    this.host = host;
  }
  public String getHost() {
    return this.host;
  }
}

 

3, 测试

java -jar $WKDIR/emailSender.jar ldaolong@126.comldaolong@126.com mail.com "Hello World" $WKDIR/ 12.csv  111

分享到:
评论

相关推荐

    javax.mail-1.4.4.jar

    通过java扩展包javax.mail-1.4.4.jar实现邮件发送功能。 import javax.mail.Address; import javax.mail.BodyPart; import javax.mail.Message; import javax.mail.MessagingException; import javax.mail.Multipart...

    java 基于javax.mail的邮件发送测试工具

    基于javax.mail的邮件发送测试工具

    基于Maven的javax.mail发送邮件例子程序

    基于Maven的javax.mail发送邮件例子程序 pom.xml添加依赖jar: &lt;groupId&gt;javax.mail &lt;artifactId&gt;mail ${javamail.version} &lt;/dependency&gt; &lt;javamail.version&gt;1.4.1&lt;/javamail.version&gt; /* 功能:...

    javax.mail-1.6.0.jar包及移入maven仓库语句

    在Java开发中,`javax.mail`库是一个非常重要的组件,主要用于处理电子邮件的发送与接收。这个库提供了丰富的API,使得开发者能够轻松地实现邮件服务的功能。`javax.mail-1.6.0.jar`是该库的一个特定版本,包含了...

    javax.mail.jar-Java发送邮件API

    javax.mail.jar-Java发送邮件API。Apache Email基于javax.mail做了一个开源项目,参见:http://commons.apache.org/proper/commons-email/

    javax.mail.jar下载

    在Java编程环境中,`javax.mail.jar` 是一个非常重要的库,它提供了用于发送和接收电子邮件的API。这个库是JavaMail API的一部分,主要用于处理SMTP(简单邮件传输协议)、POP3(邮局协议版本3)和IMAP(因特网消息...

    javax.mail-1.6.2_javamailjar1.6.2_javamail-1.6.2_javax.mail_java

    `javax.mail-1.6.2_javamailjar1.6.2_javamail-1.6.2_javax.mail_java` 这个标题暗示了我们正在讨论的是 JavaMail 的 1.6.2 版本,这是一个稳定且广泛使用的版本。 JavaMail API 提供了一套标准的接口,用于与邮件...

    javax.mail发送邮件

    根据提供的文件信息,我们可以深入探讨如何使用`javax.mail`包中的类来实现通过QQ邮箱服务发送电子邮件的功能。这里的关键步骤包括设置SMTP服务器、配置安全连接(如SSL/TLS)、创建邮件会话、构建邮件对象以及最终...

    javax.mail.1.4.7.jar

    在使用javax.mail.1.4.7.jar时,开发者需要注意兼容性问题,确保所使用的Java版本与JavaMail版本相匹配。此外,由于邮件处理涉及网络通信和安全,因此还需要考虑SSL/TLS加密以及可能的认证机制,如用户名和密码。 ...

    java发送邮件依赖包javax.mail.jar和activation.jar.zip

    Java发送邮件是开发中常见的一项任务,特别是...以上就是Java使用javax.mail.jar和activation.jar发送邮件的基本知识。这两个库的结合使用极大地简化了邮件操作,使得Java开发者能够方便地集成邮件功能到自己的应用中。

    javamail1.4.5和javax.mail-1.5.5.jar

    总的来说,`javamail1.4.5` 和 `javax.mail-1.5.5.jar` 提供了强大的邮件处理功能,让Java开发者能够轻松地集成邮件功能到他们的应用程序中。选择哪个版本取决于具体项目的需求,包括兼容性、性能和新特性需求。

    javax.mail java 发送邮件的实现

    在Java编程语言中,`javax.mail` 是一个标准的API,用于发送和接收电子邮件。这个API为开发者提供了处理SMTP(简单邮件传输协议)、POP3(邮局协议版本3)和IMAP(因特网消息访问协议)等邮件服务的能力。在本篇中,...

    javax.mail-1.5.2源码

    `javax.mail` 是Java平台上的一个标准API,用于处理电子邮件通信。这个API提供了一套全面的接口和类,使得开发者可以方便地实现邮件发送、接收、管理邮箱等操作。`javax.mail-1.5.2` 版本是这个库的一个特定发行版,...

    采用javax.mail发送邮件,可以发送附件

    采用javax.mail发送邮件,可以发送附件

    采用java的javax.mail发送 mail

    在Java中,使用javax.mail库可以方便地实现邮件的发送功能,包括添加附件、设置抄送和密送等。 在描述中提到的"带sun的jar包",可能是指早期版本的Java Mail API,它曾包含在Sun Microsystems提供的Java ...

    JSP发送邮件实例 利用javax.mail和java.activation这两个包

    在这个实例中,我们将利用`javax.mail`和`java.activation`这两个Java库来实现JSP发送邮件的功能。这两个库是JavaMail API的一部分,提供了丰富的接口和类,使得我们可以在Java程序中方便地处理邮件的发送和接收。 ...

    javax.mail.jar

    《Java邮件API(javax.mail)详解》 在Java编程领域,`javax.mail.jar`是一个重要的库文件,它包含了Java Mail API的所有类和接口,用于处理电子邮件的发送和接收。Java Mail API是Java平台上的标准API,它允许开发...

    javax.mail发送邮件所需要jar及简单demo

    在Java编程环境中,发送电子邮件是一项常见的任务,而`javax.mail`库是Java中处理邮件通信的标准API。这个库提供了一套完整的工具,用于构建能够发送和接收电子邮件的应用程序。在这个场景中,我们主要关注`javax....

    JAVA发送邮件demo 代码 及jar包 javax.mail.jar

    `javax.mail.jar` 是Java Mail API的实现,它提供了一套标准的API,用于处理邮件发送和接收。以下是对这个主题的详细说明: 1. **Java Mail API**: Java Mail API 是Java平台上的一个标准API,它允许Java程序与...

    javax.activation.UnsupportedDataTypeException: no object DCH for MIME type

    在Oracle 11.2.0.4中调用 javax.mail 发送邮件时可能会遇到以下错误: ORA-29532: Java call terminated by uncaught Java exception: javax.mail.MessagingException: IOException while sending message; nested ...

Global site tag (gtag.js) - Google Analytics