java发送 email
- public class EmailUtils implements IAction
- {
- private static Logger logger = Logger.getLogger(EmailUtils.class.getName());
- private static EmailUtils instance;
- //邮件服务器
- private static String EMAIL_HOST = "mail.host";
- //邮件简单协议
- private static String MAIL_TRANSPORT_PROTOCOL = "mail.transport.protocol";
- //是否开启验证,必须能为true
- private static boolean MAIL_SMTP_AUTH_VALUE = true;
- //是否开启验证
- private static String MAIL_SMTP_AUTH = "mail.smtp.auth";
- private static String EAIL_FORMATTER = "text/html;charset=utf-8";
- private static String MAIL_SMTP_PORT = "mail.smtp.port";
- Map<String,String> map = null;
- List<String> receiverList;
- public static EmailUtils getInstance() throws BaseAppException {
- if(null == instance){
- instance = new EmailUtils();
- }
- return instance;
- }
- public EmailUtils() throws BaseAppException
- {
- logger.info("get email info begain.....");
- //初始化邮件系统参数系统
- Base base = new Base(new DynamicDict().getConnection());
- String sql = "SELECT PARA_SUB_CODE,PARA_VALUE FROM TWF_SYSTEMPARAMETER WHERE PARA_CATEGORY =15 ORDER BY SEQ ASC";
- DynamicDict dict = base.query("get email info", "EMAIL", sql,new String[]{});
- map = new HashMap<String,String>();
- // properties = new Properties();
- if(dict.getCount("EMAIL")>0){
- for (int i = 0; i < dict.getCount("EMAIL"); i++)
- {
- Map<String,String> map_value = new HashMap<String,String>();
- map_value = (Map<String, String>)dict.getValueByName("EMAIL",i);
- map.put(map_value.get("PARA_CODE"), map_value.get("PARA_VALUE"));
- }
- }
- //获取邮件的接受者
- String rSql = "SELECT PARA_SUB_CODE,PARA_VALUE FROM TWF_SYSTEMPARAMETER WHERE PARA_CATEGORY =16 ORDER BY SEQ ASC";
- //Base rBase = new Base(new DynamicDict().getConnection());
- receiverList = new LinkedList<String>();
- DynamicDict receiverDict = base.query("get email receiver", "EMAIL_RECEIVER", rSql,new String[]{});
- if(receiverDict.getCount("EMAIL_RECEIVER")>0){
- for (int i = 0; i < receiverDict.getCount("EMAIL_RECEIVER"); i++)
- {
- Map<String,String> map_value = new HashMap<String,String>();
- map_value = (Map<String, String>)receiverDict.getValueByName("EMAIL_RECEIVER",i);
- receiverList.add(map_value.get("PARA_VALUE"));
- }
- }
- }
- @Override
- public int perform(DynamicDict dict)
- throws BaseAppException
- {
- //判断工单状态和等级
- String level_order = dict.getString("WORK_ORDER_LEVEL");
- String state_order = dict.getString("WORK_ORDER_STATE");
- //String receiver = dict.getString("STAFF_EMAIL");
- Properties prop=new Properties();
- //邮件主题、内容、发送者、密码、工单等级、状态
- String subject = "",content = "", sender = "",password = "" ,level = "", state = "";
- prop.put(MAIL_SMTP_AUTH, MAIL_SMTP_AUTH_VALUE);
- logger.info("get email config info map :"+map);
- if(!CollectionUtils.isEmpty(map)){
- //邮件服务器
- prop.put(EMAIL_HOST, map.get("FOS_EMAIL_HOST"));
- //邮件简单协议
- prop.put(MAIL_TRANSPORT_PROTOCOL, map.get("FOS_EMAIL_TRANSPORT_PROTOCOL"));
- //邮件端口
- prop.put(MAIL_SMTP_PORT, map.get("FOS_EMAIL_PORT"));
- //密码(授权码非邮件用户登陆密码)
- password = map.get("FOS_EMAIL_SENDER_PASSWORD");
- //邮件主题
- subject = map.get("FOS_EMAIL_TITLE");
- //邮件内容
- content = map.get("FOS_EMAIL_CONTENT").replace("$(staffname)", dict.getString("STAFF_NAME")).replace("$(workorderno)", dict.getString("WORK_ORDER_NO"));
- //用户名
- sender = map.get("FOS_EMAIL_SENDER_USERNAME");
- //工单状态
- state = map.get("FOS_EMAIL_ORDER_STATE");
- //工单等级
- level = map.get("FOS_EMAIL_ORDER_LEVEL");
- }
- // if(level_order.equals(level) && state_order.equals(state)){
- try
- {
- for (String receiver : receiverList) {
- sendEamil(prop, subject, content, sender, password, receiver);
- }
- }
- catch (MessagingException e)
- {
- logger.error("send email fail caused by :"+e);
- throw new BaseAppException("send email fail caused by :"+e);
- }
- //}
- return 0;
- }
- //发送邮件
- public void sendEamil (Properties prop,String subject,String content,String sender,String password,String receiver) throws MessagingException{
- System.out.println("prop..."+prop);
- //使用java发送邮件5步骤
- //1.创建sesssion
- Session session=Session.getInstance(prop);
- //开启session的调试模式,可以查看当前邮件发送状态
- session.setDebug(true);
- //2.通过session获取Transport对象(发送邮件的核心API)
- Transport ts=session.getTransport();
- System.out.println(ts);
- //3.通过邮件用户名密码链接
- ts.connect(sender, password);
- //4.创建邮件
- Message msg=createSimpleMail(session,subject,content,sender,receiver) ;
- //5.发送电子邮件
- ts.sendMessage(msg, msg.getAllRecipients());
- }
- //創建一封郵件
- public static MimeMessage createSimpleMail(Session session,String subject,String content,String sender,String receiver) throws AddressException,MessagingException{
- //创建邮件对象
- MimeMessage mm=new MimeMessage(session);
- //设置发件人
- mm.setFrom(new InternetAddress(sender));
- //设置收件人
- mm.setRecipient(Message.RecipientType.TO, new InternetAddress(receiver));
- // //设置抄送人
- // mm.setRecipient(Message.RecipientType.CC, new InternetAddress("632132852@qq.com"));
- mm.setSubject(subject);
- mm.setContent(content, EAIL_FORMATTER);
- return mm;
- }
- public static void main(String[] args) throws MessagingException, BaseAppException
- {
- Properties localProperties = System.getProperties();
- localProperties.setProperty("ZSMART_HOME", "F:\\zsmart");
- DynamicDict dict = new DynamicDict();
- dict.setValueByName("STAFF_NAME", "wudi");
- dict.setValueByName("WORK_ORDER_NO", "123456");
- //dict.setValueByName("STAFF_EMAIL", "wudi@redoornetwork.com");
- //dict.setValueByName("WORK_ORDER_LEVEL", "A");
- //dict.setValueByName("WORK_ORDER_STATE", "0");
- System.out.println(FOSCommonCache.getInstance().getListByCode("FOS_EMAIL"));
- // EmailUtils.getInstance().perform(dict);
- }
- }
上述代码中夹杂了具体业务中的代码,没有用的可以自行删除,发送邮件比较简单。
还有就是需要mail.jar文件。 点此下载
java发送 email的更多相关文章
- java发送email一般步骤
java发送email一般步骤 一.引入javamail的jar包: 二.创建一个测试类,实现将要发送的邮件内容写入到计算机本地,查看是否能够将内容写入: public static void mai ...
- Java发送email的端口问题
Could not connect to SMTP host: smtp.***.com, port: 465, response: -1 使用Java发送email 的端口问题.一般使用25端口即可 ...
- java发送email
package com.assess.util; import java.io.File; import java.util.ArrayList; import java.util.List; imp ...
- java发送email(含代理方式,ssl方式,传统方式)
package spring.vhostall.com; import java.security.Security; import java.util.Date; import java.util. ...
- 用java发送email邮件例子
package com.hzk.mail; import java.net.MalformedURLException; import java.net.URL; import java.text.S ...
- Java发送Email邮件及SpringBoot集成
一:普通方式发送 1.导包 <!--Java MAil 发送邮件API--> <dependency> <groupId>javax.mail</groupI ...
- 关于java发送email
转载:https://blog.csdn.net/qq_32371887/article/details/72821291 1:使用JavaMail发送邮件 // 1.创建一个程序与邮件服务器会话对象 ...
- 廖雪峰Java13网络编程-2Email编程-1发送email
1.邮件发送 1.1传统邮件发送: 传统的邮件是通过邮局投递,从一个邮局到另一个邮局,最终到达用户的邮箱. 1.2电子邮件发送: 与传统邮件类似,它是从用户电脑的邮件软件(如outlook)发送到邮件 ...
- 使用spring 并加载模板发送Email 发邮件 java 模板
以下例子是使用spring发送email,然后加载到固定的模板,挺好的,大家可以试试 需要使用到spring-context 包 和 com.springsource.org.apache.veloc ...
随机推荐
- how2heap分析系列:0
新学期到了,给学弟们写点东西, https://github.com/shellphish/how2heap 这个how2heap挺不错的,讲述了heap上几种不同的漏洞利用技术,在后面发的几篇中我会 ...
- 【Linux】AWK入门
什么是AWK AWK是一种用于处理文本的编程语言工具,一个模式匹配程序.一个典型的示例是将数据转换成格式化的报告. 在命令行输入如下awk命令: awk -F":" '{ prin ...
- 【GSM】GTM900C的应用——短信
虽说GSM已经很老旧,但其低廉的价格,非常适合一些需要小数据上网传输和短信等功能的应用场合. 不知道GSM能否像51单片机一样,在低端应用中长久不衰.GTM900C发送短信,支持两种模式,TXT和PD ...
- redis 学习笔记(6)-cluster集群搭建
上次写redis的学习笔记还是2014年,一转眼已经快2年过去了,在段时间里,redis最大的变化之一就是cluster功能的正式发布,以前要搞redis集群,得借助一致性hash来自己搞shardi ...
- [LeetCode] Gray Code 格雷码
The gray code is a binary numeral system where two successive values differ in only one bit. Given a ...
- Power Management开发的一般流程
本文作为一个提纲挈领的介绍性文档,后面会以此展开,逐渐丰富. 开发流程 针对一个PM feature进行开发,设计模型是第一步.模型设计好之后,还要保留参数接口,可以基于这些参数针对特殊个体进行优化. ...
- 判断是pc端还是手机端,并跳转到相应页面
<!-- 判断浏览器是否为手机端 --> <script> // class ! function(navigator) { var user ...
- go database/sql sql-driver/mysql 操作
这里使用的是github.com/Go-SQL-Driver/MySQL, 所以需要下载一个github.com/Go-SQL-Driver/MySQL 引入 database/sql 和 githu ...
- SQL基础语法(五)
SQL INSERT INTO 语句INSERT INTO 语句 INSERT INTO 语句用于向表格中插入新的行. 语法:INSERT INTO 表名称 VALUES (值1, 值2,....) ...
- bootstrap-监听滚动实现头部跟随滚动
实现案例 <body data-spy="scroll" data-target="#bs-example-navbar-collapse-1"> ...