文档章节

工具类:java 邮件发送

阿呆的柜子叫小羊
 阿呆的柜子叫小羊
发布于 2015/10/31 13:06
字数 328
阅读 28
收藏 0
package com.dgy.demo;

import java.util.Calendar;
import java.util.Properties;

import javax.mail.Authenticator;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMessage.RecipientType;

/**
 * 
 * 邮件发送工具类
 * 
 * @author dgy
 *
 */
public class E_MailUtil {

	@SuppressWarnings("static-access")
	/**
	 * 
	 * @param smtpHost
	 *            为邮件smtp地址 QQ:smtp.qq.com
	 * @param from
	 *            发送者账户
	 * @param fromUserPassword
	 *            发送者密码
	 * @param to
	 *            发送给谁
	 * @param subject
	 *            邮件主题
	 * @param messageText
	 *            邮件内容
	 * @param messageType
	 *            邮件类型
	 * @throws MessagingException
	 */
	public boolean sendMessage(String smtpHost, String from, String fromUserPassword, String to, String subject,
			String messageText, String messageType) throws MessagingException {
		try {
			// 第一步:配置javax.mail.Session对象
			Properties props = new Properties();
			props.put("mail.smtp.host", smtpHost);
			props.put("mail.smtp.starttls.enable", "true");// 使用 STARTTLS安全连接
			// props.put("mail.smtp.port", "25"); //google使用465或587端口
			props.put("mail.smtp.auth", "true"); // 使用验证
			// props.put("mail.debug", "true");
			Session mailSession = Session.getInstance(props, new MyAuthenticator(from, fromUserPassword));

			// 第二步:编写消息
			InternetAddress fromAddress = new InternetAddress(from);
			InternetAddress toAddress = new InternetAddress(to);

			MimeMessage message = new MimeMessage(mailSession);

			message.setFrom(fromAddress);
			message.addRecipient(RecipientType.TO, toAddress);

			message.setSentDate(Calendar.getInstance().getTime());
			message.setSubject(subject);
			message.setContent(messageText, messageType);

			// 第三步:发送消息
			Transport transport = mailSession.getTransport("smtp");
			transport.connect(smtpHost, from, fromUserPassword);
			transport.send(message, message.getRecipients(RecipientType.TO));
			return true;
		} catch (Exception e) {
			return false;
		}
	}

	public static void main(String[] args) {
		try {
			E_MailUtil em = new E_MailUtil();
			boolean flag = em.sendMessage("smtp.qq.com", "1256@qq.com", "*******", "1254@qq.com", "你好", "有意联系1254",
					"text/html;charset=gb2312");
			System.out.println(flag);
		} catch (MessagingException e) {
			e.printStackTrace();
		}
	}
}

/**
 * 
 * 密码验证类。 javax.mail.Authenticator是一个抽象类,
 * 我们要写MyAuthenticator的密码验证类,该类继承Authenticator实现
 *
 */
class MyAuthenticator extends Authenticator {
	String userName = "";
	String password = "";

	public MyAuthenticator() {
	}

	public MyAuthenticator(String userName, String password) {
		this.userName = userName;
		this.password = password;
	}

	protected PasswordAuthentication getPasswordAuthentication() {
		return new PasswordAuthentication(userName, password);
	}
}


© 著作权归作者所有

阿呆的柜子叫小羊
粉丝 0
博文 5
码字总数 1335
作品 0
合川
程序员
私信 提问
加载中
Java 发送qq邮件基础和封装

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

fantj666
2018/03/18
0
0
[手记]使用java Mail发送邮件.

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

被风遗忘
2012/05/06
533
0
Spring Cloud 2.x系列之springboot发送邮件

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

技术小能手
2018/10/22
0
0
Java 发送邮件实现(JavaMail 和 Spring 实现)

Java 实现邮件的发送,使用 JavaMail 和 Spring 实现 一、使用 JavaMail JavaMail 是 Java 处理电子邮件相关的编程接口,但是没有被加在标准的Java开发工具包中(Java Development Kit),所...

非摩尔根
01/17
181
0
Jenkins 教程(一)实现自动化打包及邮件通知

个人不喜欢装腔作势一堆专业术语放上去,让大多数人看不懂来提升逼格(所谓的专家),所以我简单的介绍jenkins是干啥的。本文使用jenkins,就是让它把git仓库里的东西取出来,然后在jenkins容器...

FantJ
2018/05/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

链表中环的入口节点

给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。 思路: public ListNode EntryNodeOfLoop(ListNode pHead) { if (pHead == null || pHead.next == null) ...

Garphy
10分钟前
2
0
Spring5 源码分析-容器刷新-invokeBeanFactoryPostProcessors()方法

上一篇:Spring5 源码分析-容器刷新-prepareBeanFactory()方法 该方法主要完成以下功能: 1.实例化ConfigurationClassPostProcessor,并调用ConfigurationClassPostProcessor.postProcessBe...

特拉仔
10分钟前
3
0
为什么MySQL用B+树做索引

索引这个词,相信大多数人已经相当熟悉了,很多人都知道MySQL的索引主要以B+树为主,但是要问到为什么用B+树,恐怕很少有人能把前因后果讲述的很完整。本文就来从头到尾介绍下数据库的索引。...

小致Daddy
35分钟前
4
0
网站前台的三级联动数据封装

我在进行项目时候遇到了一个进行数据封装的一个功能,进行数据的封装的功能也挺复杂,来回试了好几十种方法.最后使用的是这种方法. 使用一个pojo进行封装两个数据,一个是list一个是实体类. 具体...

小天丶羽
37分钟前
4
0
创龙基于TI AM437x ARM Cortex-A9 + Xilinx Spartan-6 FPGA的SPI FLASH、硬件加密芯片

TL437xF-EVM是一款广州创龙基于TI AM437x ARM Cortex-A9 + Xilinx Spartan-6 FPGA设计的开发板,底板采用沉金无铅工艺的4层板设计,尺寸为240mm*130mm,它为用户提供了SOM-TL437xF核心板的测...

Tronlong创龙
40分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部