文档章节

Java Mail发送

liu13430
 liu13430
发布于 2015/06/16 21:13
字数 288
阅读 108
收藏 13
package com.xuo.jms;

import java.util.Properties;

import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeUtility;

import org.apache.commons.lang.StringUtils;

public class MailUtil {
	
    private MimeMessage message;
    private Session session;
    private Transport transport;
    private String smtpHost = "";
    private int smtpPort = 25;
    private String senderUserName = "";
    private String senderPassword = "";

    public MailUtil(Properties properties, boolean debug) {
        this.smtpHost = properties.getProperty("mail.smtp.host");
        this.smtpPort = Integer.parseInt(properties.getProperty("mail.smtp.port"));
        this.senderUserName = properties.getProperty("mail.sender.username");
        this.senderPassword = properties.getProperty("mail.sender.password");
        session = Session.getInstance(properties);
        session.setDebug(debug);//开启后有调试信息
        message = new MimeMessage(session);
    }

    /**
     * 发送邮件
     *
     * @param subject        邮件主题
     * @param mailBody       邮件内容
     * @param senderNickName 发件人NickName
     * @param receiveUser    收件人地址
     * @param ccReceiveUser  抄送地址
     * @param bccReceiveUser 密送地址
     */
    public void sendEmail(String subject, String mailBody, String senderNickName,
                          String receiveUser, String ccReceiveUser, String bccReceiveUser, Boolean isHtmlFormat) {
        try {
            // 发件人
            InternetAddress from = null;
            if (StringUtils.isEmpty(senderNickName)) {
                from = new InternetAddress(senderUserName);
            } else {
                from = new InternetAddress(MimeUtility.encodeWord(senderNickName) + " <" + senderUserName + ">");
            }
            message.setFrom(from);

            // 收件人
            InternetAddress to = new InternetAddress(receiveUser);
            message.setRecipient(Message.RecipientType.TO, to);

            //抄送人
            if (!StringUtils.isEmpty(ccReceiveUser)) {
                InternetAddress cc = new InternetAddress(ccReceiveUser);
                message.setRecipient(Message.RecipientType.CC, cc);
            }

            //密送人
            if (!StringUtils.isEmpty(bccReceiveUser)) {
                InternetAddress bcc = new InternetAddress(bccReceiveUser);
                message.setRecipient(Message.RecipientType.BCC, bcc);
            }

            message.setSubject(subject);
            String content = mailBody.toString();

            if (isHtmlFormat) {
                message.setContent(content, "text/html;charset=UTF-8");
            } else {
                message.setContent(content, "text/plain;charset=UTF-8");
            }
            message.saveChanges();
            transport = session.getTransport("smtp");
            transport.connect(smtpHost, smtpPort, senderUserName, senderPassword);
            transport.sendMessage(message, message.getAllRecipients());


        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (transport != null) {
                try {
                    transport.close();
                } catch (MessagingException e) {
                    e.printStackTrace();
                }
            }
        }
    }

    public static void main(String[] args) {
    	Properties properties = new Properties();
    	properties.setProperty("mail.smtp.host", "smtp.sina.com");
    	properties.setProperty("mail.smtp.port", "25");
    	properties.setProperty("mail.smtp.auth", "true");
    	properties.setProperty("mail.sender.username", "XXXXXXXXX");
    	properties.setProperty("mail.sender.password", "XXXXXXXXX");
		MailUtil mailUtil = new MailUtil(properties, false);
		
	}
}


© 著作权归作者所有

共有 人打赏支持
上一篇: Quartz2.x
下一篇: Oracle11g闪回技术
liu13430
粉丝 18
博文 48
码字总数 35010
作品 0
深圳
高级程序员
私信 提问
Java 发送qq邮件基础和封装

前文摘自 菜鸟教程 :http://www.runoob.com/java/java-sending-email.html 使用Java应用程序发送 E-mail 十分简单,但是首先你应该在你的机器上安装 JavaMail API 和Java Activation Frame...

fantj666
03/18
0
0
commons-email发邮件

记得曾经学习用javamail发邮件,学了2天,大概搞明白了利用javamail发邮件的方法和注意事项。 这周末在网上闲逛时,发现了另外一个发邮件的好东东。 commons-email-1.1.jar: 这是Apache组织下...

enzozhong
2013/02/14
0
0
Spring Cloud 2.x系列之springboot发送邮件

虽然现在短信验证已经最流行也是最常用的验证方式;但是邮件验证还是必不可少,依然是网站的必备功能之一。什么注册验证,忘记密码或者是给用户发送营销信息都是可以使用邮件发送功能的。最早...

技术小能手
10/22
0
0
使用javamail通过代理发送邮件

通过socks网关来访问外网的email服务器,前提是你安装了一个socks服务器。完整的使用代理发送邮件代码如下: package mail import javax.mail.internet.{InternetAddress, MimeMessage}impo...

mj4738
2012/05/29
0
2
[手记]使用java Mail发送邮件.

因为项目中要用到这个功能,写出来了.所以和大家分享一下.首先,完成javamail发送电子邮件,需要到oracle网站上下载javamail的jar包:地址为:http://www.oracle.com/technetwork/java/javamail...

被风遗忘
2012/05/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

码云项目100,水一发

简单回顾一下: 早期构想最多的,是希望能将PHP一些类和编码分区做得更细,所以很多尝试。但不得不说,PHP的功能过于单一,是的,也许写C/C++扩展,可以解决问题,那我为什么不用C#或者Golan...

曾建凯
今天
3
0
Spring应用学习——AOP

1. AOP 1. AOP:即面向切面编程,采用横向抽取机制,取代了传统的继承体系的重复代码问题,如下图所示,性能监控、日志记录等代码围绕业务逻辑代码,而这部分代码是一个高度重复的代码,也就...

江左煤郎
今天
4
0
eclipse的版本

Eclipse各版本代号一览表 Eclipse的设计思想是:一切皆插件。Eclipse核心很小,其它所有功能都以插件的形式附加于Eclipse核心之上。 Eclipse基本内核包括:图形API(SWT/Jface),Java开发环...

mdoo
今天
3
0
SpringBoot源码:启动过程分析(一)

本文主要分析 SpringBoot 的启动过程。 SpringBoot的版本为:2.1.0 release,最新版本。 一.时序图 还是老套路,先把分析过程的时序图摆出来:时序图-SpringBoot2.10启动分析 二.源码分析 首...

Jacktanger
今天
6
0
小白带你认识netty(二)之netty服务端启动(上)

上一章 中的标准netty启动代码中,ServerBootstrap到底是如何启动的呢?这一章我们来瞅下。 server.group(bossGroup, workGroup);server.channel(NioServerSocketChannel.class).optio...

天空小小
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部