`
zhangfeilo
  • 浏览: 397284 次
  • 性别: Icon_minigender_1
  • 来自: 昆明
社区版块
存档分类
最新评论

用 apache commons email 发送带附件,HTML 格式的 邮件

    博客分类:
  • java
阅读更多

1.发送普通纯文本邮件:

SimpleEmail email = new SimpleEmail();
email.setHostName("SMTP服务器");

email.setAuthentication("用户名","密码");

email.addTo("收件人", "收件人名字");
email.setFrom("发件人邮件", "发件人名字");
email.setSubject("Test message");
email.setMsg("This is a simple test of commons-email");
email.send();

2。发送带附件的邮件

EmailAttachment attachment = new EmailAttachment();
attachment.setPath("D:\\123.jpg");
attachment.setDisposition(EmailAttachment.ATTACHMENT);
attachment.setDescription("Picture of John");
attachment.setName("John");

// Create the email message
MultiPartEmail email = new MultiPartEmail();
email.setHostName("SMTP服务器");

email.setAuthentication("用户名","密码");
email.addTo("jdoe@somewhere.org", "John Doe");
email.setFrom("me@apache.org", "Me");
email.setSubject("The picture");
email.setMsg("Here is the picture you wanted");

// add the attachment
email.attach(attachment);

// send the email
email.send();

3.HTML格式邮件

HtmlEmail email = new HtmlEmail();
email.setHostName("SMTP服务器");
email.setAuthentication("用户名","密码");
email.addTo("收件人", "收件人名字");
email.setFrom("发件人邮件", "发件人名字");
  email.setSubject("The picture");
  URL url = new URL("http://****.gif");
  String cid = email.embed(url, "Apache logo");

//   set the html message
  email.setHtmlMsg("<html>The apache logo - <img src=\"cid:"+cid+"\"></html>");

//   set the alternative message
  email.setTextMsg("Your email client does not support HTML messages");

//   send the email
  email.send();
 ===========================================================================

package com.cn.cosoft.util.common;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.UnsupportedEncodingException;
import java.net.MalformedURLException;
import java.util.logging.Level;
import java.util.logging.Logger;



import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.HtmlEmail;

/**
 * <P>
 * Title:用java发送邮件的例子
 * </P>
 *
 * <P>
 * Description:发送图片附件并在html中使用该图片
 * </P>
 *
 * <P>
 * Copyright: Copyright (c) 2007
 * </P>
 *
 * @author 孙钰佳
 * @main sunyujia@yahoo.cn
 * @date Jun 10, 2008 12:35:26 AM
 */
public class SendMail extends Thread {

    private String username = "a123456";//发送者邮箱用户名
    private String password = "123456";//发送者邮箱密码
    private String smtpServer = "smtp.gmail.com";//发送者邮箱的smtp
    private String fromMailAddress = "a123456@gmail.com";// "yncosoft@gmail.com";//发送者的邮箱
    private int smtpPort = 465;//默认smtp端口号是25
    private String toMailAddress;//接收者的邮箱地在
    private String subject;//主题
    private String message;//邮件正文
    private String filename;//读取某个文件的内容为邮件正文
    public static String getPasswordFile = "getPassword";//获取密码的文件
    public static String registerStatusFile = "registerStatus";//注册验证的邮件
    private String getPasswordStatusCode = "";
    private String registerStatusStatusCode = "";

    public void setGetPasswordStatusCode(String getPasswordStatusCode) {
        this.getPasswordStatusCode = getPasswordStatusCode;
    }

    public void setRegisterStatusStatusCode(String registerStatusStatusCode) {
        this.registerStatusStatusCode = registerStatusStatusCode;
    }

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

    public void setMessage(String message) {
        this.message = message;
    }

    public void setSubject(String subject) {
        this.subject = subject;
    }

    public void setToMailAddress(String toMailAddress) {
        this.toMailAddress = toMailAddress;
    }

    public static void main(String[] args) throws Exception {
        SendMail send = new SendMail();
        send.setFilename(SendMail.registerStatusFile);
        send.setToMailAddress("123456@qq.com");
        send.setSubject("主题");
        send.sendFileContext();
    }

    @Override
    public void run() {
        try {
            try {
                sendFileContext();
            } catch (UnsupportedEncodingException ex) {
                Logger.getLogger(SendMail.class.getName()).log(Level.SEVERE, null, ex);
            }
        } catch (EmailException ex) {
            Logger.getLogger(SendMail.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    public void sendFileContext() throws EmailException, UnsupportedEncodingException {
        HtmlEmail email = new HtmlEmail();
        email.setHostName(smtpServer);//设置SMTP 
        email.setSmtpPort(smtpPort);//设置SMTP 端口
        email.setSSL(true);//设置SMTP 安全:SSL
        email.setAuthentication(username, password);//设置邮件的登录用户名和密码
        email.setFrom(fromMailAddress, "发送者名字");   //设置发送者和名字
        email.addTo(toMailAddress, "接收者密码");//设置接收者和名字
        email.setSubject(subject);//设置邮件主题
//        URL url1 = new URL("http://css.tudouui.com/skin/login/img/logo_0.png");
//        String cid2 = email.embed(url1, "Apache logo2");//附件(附件内容,名字)
        File file = new File(SendMail.class.getResource(filename).toString().substring(5));
        BufferedReader reader = null;
        StringBuilder msg = new StringBuilder("");
        try {
            reader = new BufferedReader(new FileReader(file));
            String tempString = null;

            while ((tempString = reader.readLine()) != null) {
                msg.append(tempString);
            }
        } catch (Exception e) {
        }
        message = msg.toString();
        message = new String(message.getBytes("utf-8"), "ISO-8859-1");//处理中文乱码转码
        email.setHtmlMsg(message);
        email.setTextMsg(message);
        email.send();
    }

    public void send() throws EmailException, MalformedURLException, UnsupportedEncodingException {
        HtmlEmail email = new HtmlEmail();
        email.setHostName(smtpServer);
        email.setSmtpPort(smtpPort);
        email.setAuthentication(username, password);
        email.addTo(toMailAddress, toMailAddress);
        email.setFrom(fromMailAddress, fromMailAddress);
        email.setSubject(subject);
//        URL url1 = new URL("http://css.tudouui.com/skin/login/img/logo_0.png");
//        String cid2 = email.embed(url1, "Apache logo2");//附件(附件内容,名字)
        message = new String(message.getBytes("gbk"), "ISO-8859-1");//处理中文乱码转码
        email.setHtmlMsg(message);
        email.setTextMsg("Your email client does not support HTML messages");
        email.send();
    }
}

 

 

分享到:
评论

相关推荐

    Commons: 封装Apache Commons Email简化邮件发送

    在发送带有附件的邮件时,Apache Commons Email的`MultiPartEmail`类就派上用场了。你可以添加多个文件作为附件,无论是文本、图片、PDF还是其他类型的文件,都可以轻松处理。此外,该库还支持发送带有内嵌图片的...

    新版邮件编程---Apache Commons Email

    Apache Commons Email是一个强大的Java库,专门用于简化电子邮件的创建和发送。这个库是Apache软件基金会的一个项目,旨在提供一个简单、直接的API,使得开发者在处理邮件相关的编程任务时能够更加便捷。Apache ...

    使用Apache-commons-email发送邮件

    Apache Commons Email库是Apache软件基金会的Apache Commons项目的一部分,它提供了多种邮件服务的功能,如添加附件、设置HTML内容、发送多部分邮件等。在`SendMail.java`这个示例文件中,我们很可能会看到如何使用...

    commons email 发送html邮件完整优化实例

    在这个“commons email 发送html邮件完整优化实例”中,我们将深入探讨如何利用Apache Commons Email高效、稳定地发送带有HTML内容的邮件。 首先,我们需要在项目中引入Apache Commons Email的依赖。如果你使用的是...

    Java通过Apache提供的Commons Email工具类实现邮箱发送验证码

    本篇将深入讲解如何使用Apache Commons Email工具类来发送带有验证码的电子邮件。 首先,Apache Commons Email是Apache软件基金会的一个项目,它提供了一组丰富的API,简化了Java中发送电子邮件的过程。这个库包含...

    Apache Commons Mail 封装发送邮件类

    1. **邮件组件**:Apache Commons Mail 提供了多个预定义的邮件组件,如 `SimpleEmail`、`MultiPartEmail` 和 `HtmlEmail`,分别用于发送纯文本、多部分(混合内容,如文本和附件)以及HTML格式的邮件。 2. **SMTP...

    commons-email发送邮件

    总的来说,Apache Commons Email是一个强大且易用的工具,能够帮助开发者在Java应用中轻松处理复杂的邮件发送任务,包括发送HTML邮件和附件,无需深入了解底层的JavaMail API。通过学习和使用这个库,你可以提高邮件...

    java邮件发送例子 apache email demo

    在这个例子中,我们将深入探讨如何使用Apache Commons Email库在Java中实现邮件发送。 首先,你需要在项目中引入Apache Commons Email的依赖。如果是Maven项目,可以在pom.xml文件中添加以下依赖: ```xml ...

    commons-email-1.5.jar

    《Android应用中使用Apache Commons Email库发送邮件》 在Android应用程序开发中,有时我们需要集成邮件发送功能,以便向用户发送验证码、通知或者提供其他服务。Apache Commons Email库是一个强大的Java库,它简化...

    用commons-email-1.2.jar实现发邮件功能

    在Java编程中,发送电子邮件是一项常见的任务,Apache Commons Email库为开发者提供了便利的API来实现这一功能。本篇文章将详细讲解如何使用`commons-email-1.2.jar`这个开源库来实现邮件发送,并通过`...

    邮件发送--commons-email-1.4.jar

    在描述中提到的"实现过程文章的连接"可能指向一篇教程或指南,该指南详细解释了如何使用Apache Commons Email库来发送邮件,包括设置服务器参数、添加附件、处理异常等。这样的资源对初学者非常有帮助,能够让他们...

    commons-email-1.4.jar

    2. **多种邮件类型支持**:该库不仅支持普通的文本邮件,还支持HTML格式的邮件,甚至可以发送带有内嵌图像或附件的复杂邮件。这对于需要发送具有丰富格式内容的邮件应用非常有用。 3. **SSL/TLS安全连接**:考虑到...

    Apache Commons工具集

    9. **Email**: Commons Email 提供了一个简单的API来发送电子邮件,支持HTML邮件、附件等。 10. **Execute**: 这个组件提供了一种执行外部进程并管理其生命周期的方式。 在实际开发中,Apache Commons工具集大大...

    apache.commons全套jar包下载

    6. Apache Commons Email: 这个模块使得发送电子邮件变得非常简单,支持HTML邮件、附件、多部分消息以及SMTP认证等功能。 这些jar包是许多Java项目中不可或缺的部分,尤其在处理系统级任务或提高代码可复用性时。...

    Java发送邮件 --- Apache Commns email

    接下来,我们将深入探讨如何使用Apache Commons Email来实现邮件的发送。 1. **Apache Commons Email简介** Apache Commons Email是Apache软件基金会开发的一个组件,属于Apache Commons项目的一部分。它提供了一组...

    Apache Commons 包的使用

    - **简介**:Apache Commons Email 是一个用于创建和发送电子邮件的库,它基于 JavaMail API 提供了一层更简洁的接口。 - **功能**:支持发送纯文本邮件、带有附件的纯文本邮件以及包含 HTML 内容的邮件。 - **...

    commons email,另附所需框架,导入即可

    Apache Commons Email 是一个Java库,专门用于简化电子邮件的创建和发送。这个库是Apache Commons项目的一部分,它提供了许多实用工具和方法,使得开发者在处理电子邮件时可以避免直接操作复杂的JavaMail API。...

    Java Mail和Commons-email发简单的邮件所用到的jar包

    JavaMail和Apache Commons Email是Java平台上用于发送电子邮件的两个重要库。这两个库为开发者提供了方便的API,使得在Java应用程序中实现邮件发送功能变得简单易行。以下将详细阐述这两个库以及它们所需的jar包。 ...

    用commons-email-1.1.jar实现发邮件功能:

    Apache Commons Email库是一个强大的工具,它提供了多种功能,包括支持HTML邮件、添加附件、发送多部分消息以及通过SMTP、SMTPS等多种协议发送邮件。`commons-email-1.1.jar`是该库的一个早期版本,尽管可能没有最新...

    common email 附件发送

    以上就是使用Java结合Apache Commons Email和JavaMail API发送带附件的电子邮件的基本流程。开发者可以根据实际需求对邮件内容、附件类型和邮件服务器配置进行更复杂的定制。在实际项目中,为了提高代码的可读性和可...

Global site tag (gtag.js) - Google Analytics