java 邮件发送工具类【来源网络自己已经实际应用】
最近在做一个Java发送邮件的工具类,现在分享一下完整的代码
首先需要java邮件的包javax.mail-1.5.4.jar
之前因为链接给错了,很不好意思,现在重新发一次。
包在这里可以下载http://download.csdn.net/detail/sun2015_07_24/9392090
第一步:邮箱需要开通POP3/SMTP等服务
第二步:设置授权码,代码中所写的密码不是邮箱密码是授权码

package com.jspxcms.common.util;
import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.util.Properties; import javax.mail.Address;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage; /**
* 邮件发送工具类
*/
public class SendMailUtil { /**
* 邮件发送的方法
*
* @param to 收件人
* @param subject 主题
* @param content 内容
* @param smtp 协议
* @param host 发送服务器服务器
* @param sendName 邮件发送人
* @param sendPort 邮件发送人端口
* @param userName 邮件发送人名
* @param userPwd 邮件发送人密码 自己测试时用的是授权码不是密码
* @return 成功或失败
*/
public static boolean send(String to, String subject, String content, String smtp, String host,
String sendName, String sendPort, String userName, String userPwd) { // 第一步:创建Session
Properties props = new Properties();
// 指定邮件的传输协议,smtp(Simple Mail Transfer Protocol 简单的邮件传输协议)
props.put("mail.transport.protocol", smtp);
// 指定邮件发送服务器服务器 "smtp.qq.com"
props.put("mail.host", host);
// 指定邮件的发送人(您用来发送邮件的服务器,比如您的163\sina等邮箱)
props.put("mail.from", sendName);
if (true) {
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.socketFactory.fallback", "false");
props.put("mail.smtp.socketFactory.port", sendPort);
}
Session session = Session.getDefaultInstance(props); // 开启调试模式
session.setDebug(true);
try {
// 第二步:获取邮件发送对象
Transport transport = session.getTransport();
// 连接邮件服务器,链接您的163、sina邮箱,用户名(不带@163.com,登录邮箱的邮箱账号,不是邮箱地址)、密码
transport.connect(userName, userPwd);
Address toAddress = new InternetAddress(to); // 第三步:创建邮件消息体
MimeMessage message = new MimeMessage(session);
//设置自定义发件人昵称
String nick="";
try {
nick=javax.mail.internet.MimeUtility.encodeText("我的昵称");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
message.setFrom(new InternetAddress(nick+" <"+sendName+">"));
//设置发信人
// message.setFrom(new InternetAddress(sendName)); // 邮件的主题
message.setSubject(subject);
//收件人
message.addRecipient(Message.RecipientType.TO, toAddress);
/*//抄送人
Address ccAddress = new InternetAddress("first.lady@whitehouse.gov");
message.addRecipient(Message.RecipientType.CC, ccAddress);*/
// 邮件的内容
message.setContent(content, "text/html;charset=utf-8");
// 邮件发送时间
message.setSentDate(new Date()); // 第四步:发送邮件
// 第一个参数:邮件的消息体
// 第二个参数:邮件的接收人,多个接收人用逗号隔开(test1@163.com,test2@sina.com)
transport.sendMessage(message, InternetAddress.parse(to));
return true;
} catch (Exception e) {
e.printStackTrace();
}
return false;
} public static void main(String[] args) {
// 您要发送给谁,标题,内容
//SendMailUtil.send("*****@qq.com", "标题", "内容", "smtp", "smtp.qq.com", "发送人邮箱", "端口号", "邮箱用户名", "邮箱密码");
SendMailUtil.send("*********@qq.com", "标题", "内容", "smtp", "smtp.163.com",
"181467089**@163.com", "", "181467089**", "**123456");
} }
java 邮件发送工具类【来源网络自己已经实际应用】的更多相关文章
- java 邮件发送工具类
首先需要下载mail.jar文件,我个人通常是使用maven中心库的那个: <dependency> <groupId>javax.mail</groupId> & ...
- Java邮件发送工具类
个人博客 地址:https://www.wenhaofan.com/article/20190507104851 引入Pom依赖 依赖于apchae email包,maven项目可直接加入以下依赖,普 ...
- Java 基于mail.jar 和 activation.jar 封装的邮件发送工具类
准备工作 发送邮件需要获得协议和支持! 开启服务 POP3/SMTP 服务 如何开启 POP3/SMTP 服务:https://www.cnblogs.com/pojo/p/14276637.html ...
- 邮件发送工具类 SendMail.java
package com.util; import org.apache.commons.mail.EmailException; import org.apache.commons.mail.Simp ...
- java邮件发送工具
最近在web项目中,客户端注册时需要通过邮箱验证,服务器就需要向客户端发送邮件,我把发送邮件的细节进行了简易的封装: 在maven中需要导入: <!--Email--> <depen ...
- JAVA邮件发送的简单实现
JAVA MAIL是利用现有的邮件账户发送邮件的工具,比如说,我在网易注册一个邮箱账户,通过JAVA Mail的操控,我可以不亲自登录网易邮箱,让程序自动的使用网易邮箱发送邮件.这一机制被广泛的用在注 ...
- 基于JavaMail开发邮件发送器工具类
基于JavaMail开发邮件发送器工具类 在开发当中肯定会碰到利用Java调用邮件服务器的服务发送邮件的情况,比如账号激活.找回密码等功能.本人之前也碰到多次这样需求,为此特意将功能封装成一个简单易用 ...
- HttpTool.java(在java tool util工具类中已存在) 暂保留
HttpTool.java 该类为java源生态的http 请求工具,不依赖第三方jar包 ,即插即用. package kingtool; import java.io.BufferedReader ...
- Java 通过Xml导出Excel文件,Java Excel 导出工具类,Java导出Excel工具类
Java 通过Xml导出Excel文件,Java Excel 导出工具类,Java导出Excel工具类 ============================== ©Copyright 蕃薯耀 20 ...
随机推荐
- class.getResource()和getResourceAsStream的用法
转自:http://blog.csdn.net/lcj8/article/details/3502849 class.getResource()的用法 用JAVA获取文件,听似简单,但对于很多像我这样 ...
- 在HTTP通讯过程中,是客户端还是服务端主动断开连接?
比如说:IE访问IIS,获取文件,肯定是要建立一个连接,这个连接在完成通讯后,是客户端Close了连接,还是服务端Close了连接.我用程序测模拟IE和IIS,都没有收到断开连接的消息,也就是都没有触 ...
- 删除Rancher节点的正确姿势
在Rancher上疏散该节点 删除节点 登录该节点宿主机,删除rancher相关容器 docker rm -f -v $(docker ps -aq) 删除该节点的所有volume docker vo ...
- Linux系统用户及用户组管理
目录一.新增/删除用户和用户组二.创建/修改密码三.用户身份切换--su和sudo 一.新增/删除用户和用户组1.用户组 命令 : groupadd 语法 : groupadd [-g GID] gr ...
- 关于http请求ContentType:application/x-www-form-urlencoded
在又一次http请求过程中,模拟post请求提交form表单数据一直提示部分参数为空,后面检查发现是缺少ContentType:application/x-www-form-urlencoded的原因 ...
- 解决虚拟机安装64位系统“此主机支持 Intel VT-x,但 Intel VT-x 处于禁用状态”的问题
环境说明:系统:Windows 8.1 简体中文专业版 虚拟机:VMware Workstation 11.0.0 报错:此主机支持 Intel VT-x,但 Intel VT-x 处于禁用状态.如 ...
- Docker 进入容器的几种方式
进入Docker容器比较常见的几种做法如下: 使用docker attach 使用SSH 使用nsenter 使用exec 一.使用docker attach进入Docker容器 Docker提供了a ...
- Android 版本升级涉及到的数据库数据迁移问题
最近做老版本向新版本升级,新版本增加了几张表,有的表经过了增加字段.那么如何把老的数据迁移到新的版本里呢? 我写了一段伪代码,是关于我们项目里的 用户登录信息 Users表, 历史表histor ...
- shell数组中“和@的妙用
#!/bin/bashlist=(4k"8k a bit""16k abc""32k gold"64k)for i in "${l ...
- 代码题 — 剑指offer题目、总结
剑指offer题目总结: https://www.cnblogs.com/dingxiaoqiang/category/1117681.html 版权归作者所有,任何形式转载请联系作者.作者:马孔多 ...