1.spring参数注入+util 发送邮件

2.util配置参数+util发送邮件

1.spring参数注入+util 发送邮件

    <bean id="mailSender" class="com.midea.ftms.util.MailSender">
<property name="host" value="${mail.smtp.host}"></property>
<property name="auth" value="${mail.smtp.auth}"></property>
<property name="user" value="${mail.user}"></property>
<property name="password" value="${mail.passwd}"></property>
<property name="from" value="${mail.from}"></property>
<property name="remindNum" value="${mail.remindnum}"></property>
<property name="debugModel" value="${mail.debug}"></property>
</bean>
import java.util.Properties;

import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage; public class MailSender { private String host;
private String auth;
private String user;
private String password;
private String from;
private Integer remindNum;
private Boolean debugModel; public MailSender() { } /**
* @see 发送邮件基础方法,请遵循使用规则 MailUtil.sendMail
* @param to 邮件接收地址
* @param subject 邮件主题
* @param content 邮件内容
* @throws Exception 调用者处理异常
*/
public void send(String[] to, String subject, String content)
throws Exception {
Properties props = new Properties();
// 指定SMTP服务器
props.put("mail.smtp.host", host);
// 指定是否需要SMTP验证
props.put("mail.smtp.auth", auth);
Session mailSession = Session.getDefaultInstance(props);
// 是否在控制台显示debug信息
mailSession.setDebug(debugModel);
Message message = new MimeMessage(mailSession);
// 发件人
message.setFrom(new InternetAddress(from));
// 收件人
InternetAddress[] addresses = new InternetAddress[to.length];
for (int i = ; i < to.length; i++) {
addresses[i] = new InternetAddress(to[i]);
}
message.setRecipients(Message.RecipientType.TO, addresses);
// 邮件主题
message.setSubject("subject:"+subject);
// 邮件内容(HTML格式)
message.setContent(content, "text/html;charset=GBK");
// 保存设置,让设置生效
message.saveChanges();
// 发送
Transport transport = mailSession.getTransport("smtp");
transport.connect(host, user, password);
transport.sendMessage(message, message.getAllRecipients());
transport.close();
} public String getHost() {
return host;
} public void setHost(String host) {
this.host = host;
} public String getAuth() {
return auth;
} public void setAuth(String auth) {
this.auth = auth;
} public String getUser() {
return user;
} public void setUser(String user) {
this.user = user;
} public String getPassword() {
return password;
} public void setPassword(String password) {
this.password = password;
} public String getFrom() {
return from;
} public void setFrom(String from) {
this.from = from;
} public Integer getRemindNum() {
return remindNum;
} public void setRemindNum(Integer remindNum) {
this.remindNum = remindNum;
} public Boolean getDebugModel() {
return debugModel;
} public void setDebugModel(Boolean debugModel) {
this.debugModel = debugModel;
} }
public class MailUtil {

    private static volatile MailSender mailSender;

    private MailUtil() {

    }

    public static MailSender init() {
if (mailSender == null) {
synchronized (MailSender.class) {
if (mailSender == null) {
// mailSender = new MailSender();
mailSender = (MailSender)ContextUtil.getContext().getBean("mailSender");
}
}
}
return mailSender;
} public static void sendMail(String[] to, String subject, String content)
throws Exception {
MailUtil.init().send(to, subject, content);
} public static void main(String[] args) {
MailUtil.init().setAuth("true");
MailUtil.init().setDebugModel(true);
MailUtil.init().setFrom("a@b.com");
MailUtil.init().setHost("cd.com.cn");
MailUtil.init().setUser("user");
MailUtil.init().setPassword("passwd");
MailUtil.init().setRemindNum();
try {
MailUtil.sendMail(new String[]{"asdfa@qq.com","134324323@qq.com"}, "测试", "hello yoyo");
} catch (Exception e) {
e.printStackTrace();
}
} }

2.util配置参数+util发送邮件

import java.util.Properties;

import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage; public class MailSendUtil { private String host;
private String auth;
private String user;
private String password;
private String from;
private Integer remindNum;
private Boolean debugModel; private volatile static MailSendUtil mailSendUtil; private MailSendUtil(){
init();
} private void init() {
host = PropertiesUtil.getProperty("mail.smtp.host");
auth = PropertiesUtil.getProperty("mail.smtp.auth");
user = PropertiesUtil.getProperty("mail.user");
password = PropertiesUtil.getProperty("mail.passwd");
from = PropertiesUtil.getProperty("mail.from");
remindNum = Integer.parseInt(PropertiesUtil.getProperty("mail.remindnum"));
debugModel = Boolean.valueOf(PropertiesUtil.getProperty("mail.debug"));
} public static MailSendUtil getInstance() {
if (mailSendUtil == null) {
synchronized (MailSendUtil.class) {
if (mailSendUtil == null) {
return new MailSendUtil();
}
}
}
return mailSendUtil;
} public static void sendMail(String[] to, String subject, String content)
throws Exception {
MailSendUtil.getInstance().send(to, subject, content);
} /**
* @see 发送邮件基础方法,请遵循使用规则 MailUtil.sendMail
* @param to 邮件接收地址
* @param subject 邮件主题
* @param content 邮件内容
* @throws Exception 调用者处理异常
*/
public void send(String[] to, String subject, String content)
throws Exception {
Properties props = new Properties();
// 指定SMTP服务器
props.put("mail.smtp.host", host);
// 指定是否需要SMTP验证
props.put("mail.smtp.auth", auth);
Session mailSession = Session.getDefaultInstance(props);
// 是否在控制台显示debug信息
mailSession.setDebug(debugModel);
Message message = new MimeMessage(mailSession);
// 发件人
message.setFrom(new InternetAddress(from));
// 收件人
InternetAddress[] addresses = new InternetAddress[to.length];
for (int i = ; i < to.length; i++) {
addresses[i] = new InternetAddress(to[i]);
}
message.setRecipients(Message.RecipientType.TO, addresses);
// 邮件主题
message.setSubject("subject:"+subject);
// 邮件内容(HTML格式)
message.setContent(content, "text/html;charset=GBK");
// 保存设置,让设置生效
message.saveChanges();
// 发送
Transport transport = mailSession.getTransport("smtp");
transport.connect(host, user, password);
transport.sendMessage(message, message.getAllRecipients());
transport.close();
} }

3.遇到发送邮件正常,但是没有主题,也没有收件人的情况,请删除 geronimo-javamail_1.4_spec-1.2.jar

mail.jar 发送邮件的更多相关文章

  1. Java使用javax.mail.jar发送邮件并同意发送附件

    因为Java在开发网页上占有绝大优势.所以作为web端的领军人物,譬如发送短信和发送邮件这些就成了必定,网络安全一再安全我们须要把账号的安全级别提到更高.因此这些对于开发者也就成了必须掌握的技能!我一 ...

  2. java mail jar冲突

    开发环境:jdk1.6.0_25     MyEclipse-8.6     J2EE5   程序编译通过,J2EE5的库里面已经含有javaee.jar文件.里面的javax.mail包下面是jav ...

  3. java Mail如何发送邮件

    1.应用场景:在系统需要发送与用户相关的消息时,而用户不在线,可以采取发送邮件的方式,使用户了解最新的系统情况 或者发送验证码等验证场景 2.实验环境 主要使用mail.jar和activation. ...

  4. Java 基于mail.jar 和 activation.jar 封装的邮件发送工具类

    准备工作 发送邮件需要获得协议和支持! 开启服务 POP3/SMTP 服务 如何开启 POP3/SMTP 服务:https://www.cnblogs.com/pojo/p/14276637.html ...

  5. Java 使用 mail.jar 实现邮件发送

    目录 准备工作 使用到的 jar 包 实现代码 准备工作 要想实现邮件发送, 需要先打开发送邮箱的 POP3/SMTP 服务,打开方式在 设置>帐户 中去打开,打开之后如果是qq邮箱会获得一个授 ...

  6. Linux下使用mail命令发送邮件

    因为需要经常备份网站的数据,所以了解并学习了下linux下如何通过shell来发送邮件,这里以CentOS为例,使用mail命令来进行外部邮件的发送.mail命令的语法如下: Usage: mail ...

  7. 用linux mail命令发送邮件[Linux]

    mail [-s 邮件标题] <<邮件地址1> [邮件地址2] [邮件地址3]> [ < 包含邮件内容的文件路径 ] <-- -f 发送邮件地址> [-F 显 ...

  8. 浏览器访问php脚本通过sendmail用mail函数发送邮件

    前几天做项目遇到这样的一个问题:当某一个结点下有新的文章发表的时候,以邮件的形式通知该结点下的所有用户.这就需要用到邮件发送的功能. 因为项目是php语言做的,所以最简单的方法就是使用php自带的函数 ...

  9. Ubuntu下使用mail命令发送邮件

    Ubuntu下使用mail命令发送邮件 mail命令在Ubuntu下是需要安装的,使用下条命令进行安装: sudo apt-get install heirloom-mailx 接下来输入用户密码,等 ...

随机推荐

  1. sgu 169 Numbers

    题意:n和n+1同时被数位乘积整除的k位数个数. 假如a是237,b是238.由于个位以前的数一样.那么对于2,如果a%2==0,b%2就!=0,如果a%3==0,b%3就!=0.因此个位以前的数只能 ...

  2. android -------- Data Binding的使用 ( 四 )ListView

    今天来说说DataBinding在列表ListView中的使用 主要分为两种,1: 基本的实体类  2:Observable 定义字段 listView布局文件 <?xml version=&q ...

  3. mysql防注入

    1.对用户输入的数据进行过滤 2.永远不要使用动态拼装sql,可以使用参数化的sql或者直接使用存储过程进行数据查询存取. 3.永远不要使用管理员权限的数据库连接,为每个应用使用单独的权限有限的数据库 ...

  4. 『TensotFlow』RNN中文文本_下_暨研究生开学感想

    承前 接上节代码『TensotFlow』RNN中文文本_上, import numpy as np import tensorflow as tf from collections import Co ...

  5. 『计算机视觉』经典RCNN_其二:Faster-RCNN

    项目源码 一.Faster-RCNN简介 『cs231n』Faster_RCNN 『计算机视觉』Faster-RCNN学习_其一:目标检测及RCNN谱系 一篇讲的非常明白的文章:一文读懂Faster ...

  6. 『MXNet』第二弹_Gluon构建模型

    上节用了Sequential类来构造模型.这里我们另外一种基于Block类的模型构造方法,它让构造模型更加灵活,也将让你能更好的理解Sequential的运行机制. 回顾: 序列模型生成 层填充 初始 ...

  7. 移动端rem适配 flex.js

    (function() { document.addEventListener('DOMContentLoaded', function () { var html = document.docume ...

  8. JQ 实现监测input中值的变化并绑定到另个input

                    $('#input').bind('input propertychange', function () {                     $('#myDiv ...

  9. iphone手机在网页返回上一页时,部分字体变大问题

    最近做一个项目是,发现了一个iphone的兼容性问题,在返回上一页后,部分字体会变大,刷新就会正常. 经过总结,发现都是span标签里面的字体变大.经过查询发现,需要给span添加一个属性:displ ...

  10. 建一个maven项目

     建一个普通的maven项目(eclipse) 需要的jar和文件: eclipse :jdk1.8.0_144 maven:apache-maven-3.5.3     进入(下载):http:// ...