文档章节

Java Mail发送

liu13430
 liu13430
发布于 2015/06/16 21:13
字数 288
阅读 106
收藏 13
点赞 0
评论 0
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);
		
	}
}


© 著作权归作者所有

共有 人打赏支持
liu13430
粉丝 17
博文 48
码字总数 35010
作品 0
深圳
高级程序员
commons-email发邮件

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

enzozhong
2013/02/14
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
在RedHat Enterprise Linux server 5.4下安装配置JDK

一、系统环境 操作系统:RedHat Enterprise Linux server 5.4(rhel 5.4) 二、安装JDK 1. 从www.oracle.com下载最新的Java SE Development Kit 7 jdk-7-linux-i586.rpm 2. 将JDK安装文件jdk-7......

晨曦之光
2012/03/09
0
0
使用javamail的一些问题总结

使用myeclipse8.5 1)发邮件提示 javax.mail.NoSuchProviderException: smtp。 使用oracle最新的javamail.jar包替换,加载到build path,下载地址 http://www.oracle.com/technetwork/java/i......

battier
2011/07/07
0
0
为 Confluence 6 配置发送邮件消息

如何配置 Confluence 向外发送邮件: 进入 > 基本配置(General Configuration) > 邮件服务器(Mail Servers)。这里列出了所有当前配置的 SMTP 服务器。 单击 添加新的 SMTP 服务器(Add N...

honeymose
07/11
0
0
[转]理解JNDI中 java:comp/env/jdbc/datasource 与 jdbc...

在描述JNDI,例如获得数据源时,JNDI地址有两种写法,例如同是 jdbc/testDS 数据源: A: java:comp/env/jdbc/testDS B: jdbc/testDS 这两种写法,配置的方式也不尽相同,第一种方法应该算是一...

穿越星辰
2011/04/25
0
0
为 Confluence 6 分发包设置一个邮件会话

最简单设置 Confluence 电子邮件发服务器的方否认就是通过 Confluence 的管理员控制台进行设置。请参考 Configuring a Server for Outgoing Mail 页面中的内容。 如果你希望添加不同的选项或...

honeymose
07/11
0
0
Android———利用JDBC连接服务器数据库

1、Android平台下与服务器数据库通信的方法 在Android平台下,连接电脑服务器的MySQL、PostgreSQL、Oracle、Sybase、Microsoft SQLServer等数据库管理系统DBMS(database management system),...

xiahuawuyu
2012/10/10
0
1
从分析async-profiler的实现细节来学习jvmti

作者: 一字马胡 转载标志 【2017-12-22】 更新日志 厉害的内容分享 在上一篇文章中分享了一个用于分析java应用性能的厉害角色:async-profiler,具体的内容可以参考Java应用性能分析工具:a...

疼丸李白
2017/12/22
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

shell及python脚本方式登录服务器

一、问题 在工作过程中,经常会遇见需要登录服务器,并且因为安全的原因,需要使用交互的方式登录,而且shell、python在工作中也经常用到,并且可以提供交互的功能。都是利用了expect、spawn...

yangjianzhou
9分钟前
0
0
upstream sent too big header while reading...

nginx 报错:1736 upstream sent too big header while reading response header from upstream 1. 一般处理 location ~ \.php$ { #增加下面两句 fastcgi_buffer_size 128k; ......

dubox
20分钟前
0
0
Python解析配置文件模块:ConfigPhaser

import configparser as pa# [SectionA]# a = aa# b = bb# c = cc# [SectionB]# optionint = 1# optionfloat = 1.1# optionstring = string#https://www.cnblogs.com/a......

易野
27分钟前
0
0
Java基础——面向对象

声明:本栏目所使用的素材都是凯哥学堂VIP学员所写,学员有权匿名,对文章有最终解释权;凯哥学堂旨在促进VIP学员互相学习的基础上公开笔记。 Object的方法: clone() Object 克隆 to Strin...

凯哥学堂
28分钟前
0
0
rabbitmq学习记录(八)消息发布确认机制

RabbitMQ服务器崩了导致的消息数据丢失,已经持久化的消息数据我们可以通过消息持久化来预防。但是,如果消息从生产者发送到vhosts过程中出现了问题,持久化消息数据的方案就无效了。 Rabbit...

人觉非常君
33分钟前
0
0
毕业5年,我是怎么成为年薪30W的运维工程师

#转载# 我在大学读的是计算机专业,但大学毕业之后,进入到一家私企进行工作,工作的内容类似于网管,会经常的去修电脑,去做水晶头等内容。刚开始工作,也没想太多,最想的是丰富自己的工作...

Py爱好
40分钟前
1
0
大数据基础知识,大数据学习,涉及的知识点

一、什么是大数据 一种规模大到在获取、存储、管理、分析方面大大超出了传统数据库软件工具能力范围的数据集合,具有海量的数据规模、快速的数据流 转、多样的数据类型和价值密度低四大特征。...

董黎明
55分钟前
0
0
Linux CentOS 7上安装极点五笔

话说几天前在新买的惠普笔记本上成功地安装了Linux CentOS 7操作系统、Nvidia Quandro P600驱动程序及X Window,并在VMware下安装Red Hat教学环境,彻底跳出Windows的苦海,但仍然有一件事不...

大别阿郎
今天
17
0
2018年7月20日集群课程

一、集群介绍 集群,简单地说是指一组(若干个)相互独立的计算机,利用高速通信网络组成一个较大的计算机服务系统,每个集群节点(即集群中的每台计算机)都是运行各自服务的独立服务器。 ...

人在艹木中
今天
0
0
spark开发机中调试snappy

目的 在Idea中的点击运行,使spark可以直接读取snappy 自己编译hadoop,以支持snappy的压缩。 自己编译的目的就是要得到支持snappy文件读写的动态链接库。如果可以在网上下载,可以跳过自行编...

benny周
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部