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

发HTML邮件

阅读更多
http://blog.csdn.net/zhanngle/archive/2008/01/10/2033416.aspx---这个好像行不通...

另外一个:http://blog.csdn.net/sunyujia/archive/2008/06/10/2528696.aspx
import java.io.ByteArrayInputStream;   
import java.io.ByteArrayOutputStream;   
import java.io.FileInputStream;   
import java.io.IOException;   
import java.io.InputStream;   
import java.io.OutputStream;   
import java.util.Arrays;   
import java.util.Date;   
import java.util.Properties;   
  
import javax.activation.DataHandler;   
import javax.activation.DataSource;   
import javax.activation.FileDataSource;   
import javax.mail.Authenticator;   
import javax.mail.BodyPart;   
import javax.mail.Message;   
import javax.mail.Multipart;   
import javax.mail.PasswordAuthentication;   
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;   
  
  
/**  
 * <P>  
 * Title:用java发送邮件的例子  
 * </P>  
 *   
 * <P>  
 * Description:发送图片附件并在html中使用该图片  
 * </P>  
 *   
 * <P>  
 * Copyright: Copyright (c) 2007  
 * </P>  
 *   
 * @author 孙钰佳   
 * @blog http://blog.csdn.net/sunyujia/  
 * @main sunyujia@yahoo.cn  
 * @date Jun 10, 2008 12:35:26 AM  
 */  
public class SendMail {   
    private static String username = "xxxx";   
    private static String password = "xxxx";   
    private static String smtpServer = "smtp.163.com";   
    private static String fromMailAddress = "xxxx@163.com";   
    private static String toMailAddress = "sunyujia@yahoo.cn";   
  
    public static void main(String[] args) throws Exception {   
        Properties props = new Properties();   
        props.put("mail.smtp.auth", "true");   
        props.put("mail.smtp.host", smtpServer);   
        // 获得邮件会话对象   
        Session session = Session.getDefaultInstance(props,   
                new SmtpAuthenticator(username, password));   
        /** *************************************************** */  
        // 创建MIME邮件对象   
        MimeMessage mimeMessage = new MimeMessage(session);   
        mimeMessage.setFrom(new InternetAddress(fromMailAddress));// 发件人   
        mimeMessage.setRecipient(Message.RecipientType.TO, new InternetAddress(   
                toMailAddress));// 收件人   
        mimeMessage.setSubject("主题");   
        mimeMessage.setSentDate(new Date());// 发送日期   
        Multipart mp = new MimeMultipart("related");// related意味着可以发送html格式的邮件   
        /** *************************************************** */  
        BodyPart bodyPart = new MimeBodyPart();// 正文   
        bodyPart.setDataHandler(new DataHandler("测<img src=\"cid:IMG1\" />试",   
                "text/html;charset=GBK"));// 网页格式   
        /** *************************************************** */  
        BodyPart attachBodyPart = new MimeBodyPart();// 普通附件   
        FileDataSource fds = new FileDataSource("c:/boot.ini");   
        attachBodyPart.setDataHandler(new DataHandler(fds));   
        attachBodyPart.setFileName("=?GBK?B?"  
                + new sun.misc.BASE64Encoder().encode(fds.getName().getBytes())   
                + "?=");// 解决附件名中文乱码   
        mp.addBodyPart(attachBodyPart);   
        /** *************************************************** */  
        MimeBodyPart imgBodyPart = new MimeBodyPart(); // 附件图标   
        byte[] bytes = readFile("C:/button.gif");   
        ByteArrayDataSource fileds = new ByteArrayDataSource(bytes,   
                "application/octet-stream");   
        imgBodyPart.setDataHandler(new DataHandler(fileds));   
        imgBodyPart.setFileName("button.gif");   
        imgBodyPart.setHeader("Content-ID", "<IMG1></IMG1>");// 在html中使用该图片方法src="cid:IMG1"   
        mp.addBodyPart(imgBodyPart);   
        /** *************************************************** */  
        mp.addBodyPart(bodyPart);   
        mimeMessage.setContent(mp);// 设置邮件内容对象   
        Transport.send(mimeMessage);// 发送邮件   
  
    }   
  
    /**  
     * 读取文件  
     *   
     * @param file  
     *            文件路径  
     * @return 返回二进制数组  
     */  
    public static byte[] readFile(String file) {   
        FileInputStream fis = null;   
        ByteArrayOutputStream bos = null;   
        try {   
            fis = new FileInputStream(file);   
            bos = new ByteArrayOutputStream();   
            int bytesRead;   
            byte buffer[] = new byte[1024 * 1024];   
            while ((bytesRead = fis.read(buffer)) != -1) {   
                bos.write(buffer, 0, bytesRead);   
                Arrays.fill(buffer, (byte) 0);   
            }   
        } catch (IOException e1) {   
            e1.printStackTrace();   
        } finally {   
            try {   
                if (bos != null)   
                    bos.close();   
            } catch (IOException e) {   
                e.printStackTrace();   
            }   
        }   
        return bos.toByteArray();   
    }   
}   
  
/**  
 * Smtp认证  
 */  
class SmtpAuthenticator extends Authenticator {   
    String username = null;   
    String password = null;   
  
    // SMTP身份验证   
    public SmtpAuthenticator(String username, String password) {   
        this.username = username;   
        this.password = password;   
    }   
  
    public PasswordAuthentication getPasswordAuthentication() {   
        return new PasswordAuthentication(this.username, this.password);   
    }   
  
}   
class ByteArrayDataSource implements DataSource {   
  
    private final String contentType;   
    private final byte[] buf;   
    private final int len;   
  
    public ByteArrayDataSource(byte[] buf, String contentType) {   
        this(buf, buf.length, contentType);   
    }   
  
    public ByteArrayDataSource(byte[] buf, int length, String contentType) {   
        this.buf = buf;   
        this.len = length;   
        this.contentType = contentType;   
    }   
  
    public String getContentType() {   
        if (contentType == null)   
            return "application/octet-stream";   
        return contentType;   
    }   
  
    public InputStream getInputStream() {   
        return new ByteArrayInputStream(buf, 0, len);   
    }   
  
    public String getName() {   
        return null;   
    }   
  
    public OutputStream getOutputStream() {   
        throw new UnsupportedOperationException();   
    }   
}  




我用时的精简版,图片只是用互联网上的一个图片,不要附件
public class SendMail {   
    private static String username = "xxxx";   
    private static String password = "xxxx";   
    private static String smtpServer = "smtp.163.com";   
    private static String fromMailAddress = "xxxx@163.com";   
    private static String toMailAddress = "sunyujia@yahoo.cn";   
  
    public static void main(String[] args) throws Exception {   
        Properties props = new Properties();   
        props.put("mail.smtp.auth", "true");   
        props.put("mail.smtp.host", smtpServer);   
        // 获得邮件会话对象   
        Session session = Session.getDefaultInstance(props,   
                new SmtpAuthenticator(username, password));   
        /** *************************************************** */  
        // 创建MIME邮件对象   
        MimeMessage mimeMessage = new MimeMessage(session);   
        mimeMessage.setFrom(new InternetAddress(fromMailAddress));// 发件人   
        mimeMessage.setRecipient(Message.RecipientType.TO, new InternetAddress(   
                toMailAddress));// 收件人   
        mimeMessage.setSubject("主题");   
        mimeMessage.setSentDate(new Date());// 发送日期   
        Multipart mp = new MimeMultipart("related");// related意味着可以发送html格式的邮件   
        /** *************************************************** */  
        BodyPart bodyPart = new MimeBodyPart();// 正文   
        bodyPart.setDataHandler(new DataHandler("测<img src=\"http://xxx.xxx.xxx/xx.jpg\" />试","text/html;charset=GBK"));// 网页格式  
        mp.addBodyPart(bodyPart);   
        mimeMessage.setContent(mp);// 设置邮件内容对象   
        Transport.send(mimeMessage);// 发送邮件   
  
    }   
  
    
/**  
 * Smtp认证  
 */  
class SmtpAuthenticator extends Authenticator {   
    String username = null;   
    String password = null;   
  
    // SMTP身份验证   
    public SmtpAuthenticator(String username, String password) {   
        this.username = username;   
        this.password = password;   
    }   
  
    public PasswordAuthentication getPasswordAuthentication() {   
        return new PasswordAuthentication(this.username, this.password);   
    }   
  
}   
class ByteArrayDataSource implements DataSource {   
  
    private final String contentType;   
    private final byte[] buf;   
    private final int len;   
  
    public ByteArrayDataSource(byte[] buf, String contentType) {   
        this(buf, buf.length, contentType);   
    }   
  
    public ByteArrayDataSource(byte[] buf, int length, String contentType) {   
        this.buf = buf;   
        this.len = length;   
        this.contentType = contentType;   
    }   
  
    public String getContentType() {   
        if (contentType == null)   
            return "application/octet-stream";   
        return contentType;   
    }   
  
    public InputStream getInputStream() {   
        return new ByteArrayInputStream(buf, 0, len);   
    }   
  
    public String getName() {   
        return null;   
    }   
  
    public OutputStream getOutputStream() {   
        throw new UnsupportedOperationException();   
    }   
}  

分享到:
评论

相关推荐

    java发HTML 邮件类和包

    java发HTML 邮件类和包 package com.common.util.mail; public String Test(String str) { String htmlMessage = "&lt;html&gt;&lt;body&gt;&lt;font size='15' color='red'&gt;This is a test mail.&lt;/font&gt;&lt;/body&gt...

    实现网页发邮件

    **HTML邮件表单基础** HTML中的`&lt;form&gt;`元素用于创建表单,用户可以在其中输入数据。以下是一个简单的例子: ```html 邮箱: &lt;input type="email" id="email" name="recipient" required&gt;&lt;br&gt; 主题: ...

    html邮件发送模板

    HTML邮件发送模板是一种用于在电子邮件中呈现精美布局和设计的技术,它结合了HTML和CSS的元素,以提供比纯文本邮件更丰富的用户体验。在站点注册、登录通知或操作通知等场景下,HTML邮件模板能够有效地传达信息并...

    java发送HTML模版邮件

    在Java编程环境中,发送HTML模板邮件是一项常见的任务,特别是在企业级应用中,用于发送美观、格式化的通知或营销信息。本项目提供了一个完整的Eclipse工程,包含必要的jar包,可以直接导入并运行,使得开发者能够...

    HTML邮件模板Email Newsletter Template Blue

    HTML邮件模板是用于创建专业且具有吸引力的电子邮件通信的工具,尤其在营销和推广活动中极为常见。"Email Newsletter Template Blue" 是一个特定的HTML模板,以其蓝色调为主题,旨在为用户提供一个美观且功能齐全的...

    net发邮件代码和html模板页

    本文将深入探讨如何使用.NET实现邮件发送,并结合HTML模板页面来增强邮件的可读性和美观性。 首先,我们需要了解SMTP(Simple Mail Transfer Protocol),这是一种用于传输电子邮件的标准协议。在.NET中,我们可以...

    JavaMail发送邮件(文本、html、附件)

    htmlPart.setContent("这是HTML邮件&lt;/h1&gt;", "text/html"); mp.addBodyPart(htmlPart); message.setContent(mp); ``` 5. **发送带附件的邮件** - 使用`Multipart`对象,添加额外的`MimeBodyPart`来处理附件。 ...

    Python-Python实现自动发邮件支持HTML富文本

    这是使用Python发送的HTML邮件。 你可以插入任何HTML元素,如图片、链接等。 &lt;/html&gt; """ msg = MIMEMultipart("alternative") msg["From"] = from_email msg["To"] = to_email msg["Subject"] = subject ``` ...

    javaMail 发邮件

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

    java发邮件 java发email

    htmlPart.setContent("这是HTML邮件&lt;/h1&gt;", "text/html"); Multipart multipart = new MimeMultipart("alternative"); multipart.addBodyPart(htmlPart); message.setContent(multipart); ``` 对于附件,可以创建...

    javamail发送html邮件

    4. **设置邮件内容**:使用 `MimeMessage` 对象设置邮件的主题、收件人、发件人、抄送人等。 5. **添加附件或 HTML 内容**:对于 HTML 邮件,通常使用 `MimeMultipart` 来组合邮件的不同部分。 6. **发送邮件**:...

    Python发邮件源码

    msg.attach(MIMEText('邮件正文', 'plain')) # 如果是HTML邮件,将'plain'改为'html' ``` 4. 添加任何必要的附件。你可以使用`MIMEBase`创建一个新的附件对象,然后将其附加到邮件中。 ```python from email....

    JAVA 发送HTML格式并带图片的邮件实例

    HTML邮件通常包含多个部分,比如文本和图片。因此,你需要创建一个`Multipart`对象,它允许你将不同类型的邮件内容组合在一起。`MimeMultipart`是JavaMail API中实现`Multipart`接口的类。 4. **添加文本内容**: ...

    php发邮件 phpMailer

    &lt;/h1&gt;&lt;p&gt;这是一封HTML邮件。&lt;/p&gt;'; ``` 除了基本的文本和HTML内容,还可以添加附件。使用`addAttachment()`方法,传入文件路径: ```php $mail-&gt;addAttachment('/path/to/file.pdf', 'attachment.pdf'); // 添加...

    domino xpages 开发 发邮件HTML

    首先,`HTMLMail` 类是一个用于构建和发送HTML邮件的JavaScript对象。它由Mark Leusink创建,并在2011年至2014年间进行了多次更新,以增强功能和修复错误。这个类允许开发者通过简单的SSJS(服务器端JavaScript)...

    快发邮件批处理 用于快速群发邮件

    邮件内容可以使用HTML邮件编辑。 多线程登录多个邮箱同时发送 ---快发邮件想不快都难。 目前系统支持的邮箱有: 139.com --网址http://mail.10086.cn/ 这是移动手机邮箱,可发邮箱中手机短信。 qq.com --网址...

    oracle存储过程实现发邮件

    oracle存储过程实现发邮件,oracle存储过程实现发邮件,oracle存储过程实现发邮件

    asp jmail发邮件系统

    4. **HTML邮件**:JMail可以发送和接收HTML格式的邮件,提供更丰富的显示效果。 5. **错误处理**:内置错误处理机制,当邮件发送失败时,可以捕获并报告错误信息。 6. **多语言支持**:JMail可以处理多种语言的编码...

    delphi 实现普通邮件和HTML邮件发送程

    在Delphi编程环境中,发送邮件是一项常见的任务,无论是发送普通文本邮件还是富文本的HTML邮件。本教程将详细讲解如何使用Delphi实现这两种类型的邮件发送功能,并基于XP和2007系统的测试环境进行说明。 首先,我们...

    Delphi 发送HTML格式邮件和纯文本邮件源代码,支持SSL,包含SSL所需要的动态库,是后台进行邮件注册认证的必备!

    3.支持纯文本邮件和 HTML 格式邮件; 4.支持同步发送邮件和异步(线程)发送邮件 5.支持发送结果回调; 6.只需要调用一个函数,使用简单; var SMTPServer : string; Account : string; Password : string; ...

Global site tag (gtag.js) - Google Analytics