集册 Java实例教程 在电子邮件正文中发送图像的实用方法

在电子邮件正文中发送图像的实用方法

欢马劈雪     最近更新时间:2020-01-02 10:19:05

454
在电子邮件正文中发送图像的实用方法


//package com.nowjava;/** 来自 nowjava.com**/

import java.io.UnsupportedEncodingException;

import java.util.Date;

import javax.activation.DataHandler;

import javax.activation.DataSource;

import javax.activation.FileDataSource;

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;


public class Main {

    /**

     * Utility method to send image in email body

     * @param session

     * @param toEmail

     * @param subject

     * @param body

     */
     /*
     N  o w  J a v a . c o m
     */

    public static void sendImageEmail(Session session, String toEmail,

            String subject, String body) {

        try {

            MimeMessage msg = new MimeMessage(session);

            msg.addHeader("Content-type", "text/HTML; charset=UTF-8");

            msg.addHeader("format", "flowed");

            msg.addHeader("Content-Transfer-Encoding", "8bit");


            msg.setFrom(new InternetAddress("no_reply@journaldev.com",

                    "NoReply-JD"));


            msg.setReplyTo(InternetAddress.parse("no_reply@journaldev.com",

                    false));


            msg.setSubject(subject, "UTF-8");


            msg.setSentDate(new Date());


            msg.setRecipients(Message.RecipientType.TO,

                    InternetAddress.parse(toEmail, false));


            // Create the message body part

            BodyPart messageBodyPart = new MimeBodyPart();


            messageBodyPart.setText(body);


            // Create a multipart message for attachment

            Multipart multipart = new MimeMultipart();


            // Set text message part

            multipart.addBodyPart(messageBodyPart);


            // Second part is image attachment

            messageBodyPart = new MimeBodyPart();

            String filename = "image.png";

            DataSource source = new FileDataSource(filename);

            messageBodyPart.setDataHandler(new DataHandler(source));

            messageBodyPart.setFileName(filename);

            //Trick is to add the content-id header here

            messageBodyPart.setHeader("Content-ID", "image_id");

            multipart.addBodyPart(messageBodyPart);


            //third part for displaying image in the email body

            messageBodyPart = new MimeBodyPart();

            messageBodyPart.setContent("<h1>Attached Image</h1>"

       
展开阅读全文