集册 Java实例教程 发送带有附件的电子邮件的实用方法

发送带有附件的电子邮件的实用方法

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

439
发送带有附件的电子邮件的实用方法


//package com.nowjava;/*n  o  w  j  a  v  a . c o m 提 供*/

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 {//时 代 J a v a 公 众 号 - N o w J a v  a . c o m 提 供

    /**

     * Utility method to send email with attachment

     *

     * @param session

     * @param toEmail

     * @param subject

     * @param body

     */

    public static void sendAttachmentEmail(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();


            // Fill the message

            messageBodyPart.setText(body);


            // Create a multipart message for attachment

            Multipart multipart = new MimeMultipart();


            // Set text message part

            multipart.addBodyPart(messageBodyPart);


            // Second part is attachment

            messageBodyPart = new MimeBodyPart();

            String filename = "abc.txt";

            DataSource source = new FileDataSource(filename);

            messageBodyPart.setDataHandler(new DataHandler(source));

            mes
展开阅读全文