JavaMail本地服务器发送邮件

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhangbinlong/article/details/78720056

Java利用自己的邮箱发送邮件需要一下两个jar包
activation.jar 下面为下载地址及方法
http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-java-plat-419418.html#7017-jaf-1.1.1-oth-JPR
这里写图片描述
mail.jar下面为下载地址及方法
http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-eeplat-419426.html#javamail-1.4.7-oth-JPR
这里写图片描述

package com.nuanshui.frms.exchange.demo.utils;

import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Message;
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;
import java.io.FileOutputStream;
import java.util.Properties;

public class EmailUtil {

        /**
         * @param args
         * @throws Exception
         */
        public static void main(String[] args) throws Exception {

            Properties prop = new Properties();
            prop.setProperty("mail.host", "发送服务器地址");
            prop.setProperty("mail.transport.protocol", "smtp");
            prop.setProperty("mail.smtp.auth", "true");
            //使用JavaMail发送邮件的5个步骤
            //1、创建session
            Session session = Session.getInstance(prop);
            //开启Session的debug模式,这样就可以查看到程序发送Email的运行状态
            session.setDebug(true);
            //2、通过session得到transport对象
            Transport ts = session.getTransport();
            //3、连上邮件服务器
            ts.connect("发送服务器地址", "本地邮箱", "邮箱密码");
            //4、创建邮件
            Message message = createAttachMail(session);
            //5、发送邮件
            ts.sendMessage(message, message.getAllRecipients());
            ts.close();
        }

        /**
         * @Method: createAttachMail
         * @Description: 创建一封带附件的邮件
         *
         * @param session
         * @return
         * @throws Exception
         */
        public static MimeMessage createAttachMail(Session session) throws Exception{
            MimeMessage message = new MimeMessage(session);

            //设置邮件的基本信息
            //发件人
            message.setFrom(new InternetAddress("发件人邮箱 "));
            //收件人
            message.setRecipient(Message.RecipientType.TO, new InternetAddress("收件人邮箱"));
            //邮件标题
            message.setSubject("标题");

            //创建邮件正文,为了避免邮件正文中文乱码问题,需要使用charset=UTF-8指明字符编码
            MimeBodyPart text = new MimeBodyPart();
            text.setContent("邮件文字内容", "text/html;charset=UTF-8");

            //创建邮件附件
            MimeBodyPart attach = new MimeBodyPart();
            DataHandler dh = new DataHandler(new FileDataSource("D:/附件地址/附件名称.xlsx"));
            attach.setDataHandler(dh);
            attach.setFileName(dh.getName());  //

            //创建容器描述数据关系
            MimeMultipart mp = new MimeMultipart();
            mp.addBodyPart(text);
            mp.addBodyPart(attach);
            mp.setSubType("mixed");

            message.setContent(mp);
            message.saveChanges();
            //将创建的Email写入到E盘存储
            message.writeTo(new FileOutputStream("d:\\attachMail.eml"));
            //返回生成的邮件
            return message;
        }
}

猜你喜欢

转载自blog.csdn.net/zhangbinlong/article/details/78720056
今日推荐