zoukankan      html  css  js  c++  java
  • springboot email 中常量值 配置 mailUtils

    列如:邮件配置:

    application-test.properties

    #################Email config start###############################
    MAIL_SMTPSERVER=192.168.3.253
    ##if it is more than one,please separating it by ","  For example "aa@icil.net,bb@icil.net"
    MAIL_SEND_TO=qqq.@163.com
    MAIL_FROM=www@qq.net
    MAIL_SEND_TO_FAIL=afsa2_test@qq.net
    
    #################Email config end###############################

    对应的类:

    @Component
    public class EmailConfig {
    
        
        private static String MAIL_SMTPSERVER;
        
        
        private static String MAIL_SEND_TO;
        
        
        private static String MAIL_FROM;
        
        
        private static String MAIL_SEND_TO_FAIL;
    
        public static String getMAIL_SMTPSERVER() {
            return MAIL_SMTPSERVER;
        }
    
        @Value("${MAIL_SMTPSERVER}")
        public void setMAIL_SMTPSERVER(String mAIL_SMTPSERVER) {
            MAIL_SMTPSERVER = mAIL_SMTPSERVER;
        }
    
        public static String getMAIL_SEND_TO() {
            return MAIL_SEND_TO;
        }
    
        @Value("${MAIL_SEND_TO}")
        public void setMAIL_SEND_TO(String mAIL_SEND_TO) {
            MAIL_SEND_TO = mAIL_SEND_TO;
        }
    
        public static String getMAIL_FROM() {
            return MAIL_FROM;
        }
    
        @Value("${MAIL_FROM}")
        public void setMAIL_FROM(String mAIL_FROM) {
            MAIL_FROM = mAIL_FROM;
        }
    
        public static String getMAIL_SEND_TO_FAIL() {
            return MAIL_SEND_TO_FAIL;
        }
    
        @Value("${MAIL_SEND_TO_FAIL}")
        public void setMAIL_SEND_TO_FAIL(String mAIL_SEND_TO_FAIL) {
            MAIL_SEND_TO_FAIL = mAIL_SEND_TO_FAIL;
        }
        
        
        
    }

    MailUtils:

    package com.icil.esolution.utils;
    
    import java.util.Date;
    import java.util.Enumeration;
    import java.util.Properties;
    import java.util.Vector;
    
    import javax.activation.DataHandler;
    import javax.activation.FileDataSource;
    import javax.mail.Message;
    import javax.mail.Multipart;
    import javax.mail.Session;
    import javax.mail.Transport;
    import javax.mail.internet.InternetAddress;
    import javax.mail.internet.MimeBodyPart;
    import javax.mail.internet.MimeMessage;
    import javax.mail.internet.MimeMultipart;
    import javax.mail.internet.MimeUtility;
    
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    
    import com.icil.esolution.config.EmailConfig;
    
    /**
     * ********************************************
     * 
     * @ClassName: MailUtils
     * 
     * @Description:
     * 
     * @author Sea
     * 
     * @date 24 Aug 2018 8:34:09 PM
     *
     ***************************************************
     */
    @SuppressWarnings("all")
    public class MailUtils {
        private static final Logger LOGGER = LoggerFactory.getLogger(MailUtils.class);
        private static  final String MAIL_SEND_TO_FAIL="MAIL_SEND_TO_FAIL";
        private Vector file = new Vector();// 附件文件集合
        
        
    
        public static boolean sendMail(String subject, String content) {
            boolean mails = new MailUtils().sendMails(null, null, subject, content, null);
            return mails;
        }
     /**
      * this use default config 
      * @param subject
      * @param content
      * @return
      */
        public static boolean sendFailedMail(String subject, String content) {
            //String tofail = properties.getProperty(MAIL_SEND_TO_FAIL);
            //String tocommon = properties.getProperty(Constant.MAIL_SEND_TO);
            String tofail = EmailConfig.getMAIL_SEND_TO_FAIL();
            String tocommon = EmailConfig.getMAIL_SEND_TO();
            boolean mails = new MailUtils().sendMails(tofail+","+tocommon, null, subject, content, null);
            return mails;
        }
        
        public static boolean sendMail(String to, String subject, String content) {
            boolean mails = new MailUtils().sendMails(to, null, subject, content, null);
            return mails;
        }
    
        public static boolean sendMail(String to, String from, String subject, String content) {
            boolean mails = new MailUtils().sendMails(to, from, subject, content, null);
            return mails;
        }
    
        /**
         * @return
         * @Description: 发送邮件,发送成功返回true 失败false
         * @author sea
         * @Date 2018年8月3日
         */
        private boolean sendMails(String to1, String from1, String subject, String content, String filename) {
    
            String to = EmailConfig.getMAIL_SEND_TO();
            String from = EmailConfig.getMAIL_FROM();
            String host = EmailConfig.getMAIL_SMTPSERVER();
            LOGGER.info("to is {}",to);
            LOGGER.info("from is {}",from);
            LOGGER.info("host is {}",host);
            String username = "";
            String password ="";
    
            if (to1 != null) {
                to = to1;
            }
            if (from1 != null) {
                from = from1;
            }
            if(content==null){
                content = "";
            }
            // 构造mail session
            Properties props = new Properties();
            props.put("mail.smtp.host", host);
    //        props.put("mail.smtp.port", "25");// 465
            props.put("mail.smtp.auth","false");    
    
    //        Session session = Session.getDefaultInstance(props, new Authenticator() {
    //            public PasswordAuthentication getPasswordAuthentication() {
    //                return new PasswordAuthentication(username, password);
    //            }
    //        });
            Session session=Session.getDefaultInstance(props);
            try {
                // 构造MimeMessage 并设定基本的值
                MimeMessage msg = new MimeMessage(session);
                msg.setFrom(new InternetAddress(from));
    
    //            msg.setRecipients(Message.RecipientType.BCC, InternetAddress.parse(to));
    //            msg.addRecipients(Message.RecipientType.CC, address);
                msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to));
                subject = transferChinese(subject);
                msg.setSubject(subject);
    
                // 构造Multipart
                Multipart mp = new MimeMultipart();
    
                // 向Multipart添加正文
                MimeBodyPart mbpContent = new MimeBodyPart();
                mbpContent.setContent(content, "text/html;charset=utf-8");
    
                // 向MimeMessage添加(Multipart代表正文)
                mp.addBodyPart(mbpContent);
    
                // 向Multipart添加附件
                Enumeration efile = file.elements();
                while (efile.hasMoreElements()) {
    
                    MimeBodyPart mbpFile = new MimeBodyPart();
                    filename = efile.nextElement().toString();
                    FileDataSource fds = new FileDataSource(filename);
                    mbpFile.setDataHandler(new DataHandler(fds));
                    filename = new String(fds.getName().getBytes(), "ISO-8859-1");
    
                    mbpFile.setFileName(filename);
                    // 向MimeMessage添加(Multipart代表附件)
                    mp.addBodyPart(mbpFile);
    
                }
    
                file.removeAllElements();
                // 向Multipart添加MimeMessage
                msg.setContent(mp);
                msg.setSentDate(new Date());
                msg.saveChanges();
    
                // 发送邮件
                Transport transport = session.getTransport("smtp");
                transport.connect(host, username, password);
                transport.sendMessage(msg, msg.getAllRecipients());
                transport.close();
            } catch (Exception mex) {
                mex.printStackTrace();
                return false;
            }
            return true;
        }
    
        
        /**
         * @param strText
         * @return
         * @Description: 把主题转为中文 utf-8
         * @Date 2017年6月22日 上午10:37:07
         */
        public String transferChinese(String strText) {
            try {
                strText = MimeUtility.encodeText(new String(strText.getBytes(), "utf-8"), "utf-8", "B");
            } catch (Exception e) {
                e.printStackTrace();
            }
            return strText;
        }
    
        public void attachfile(String fname) {
            file.addElement(fname);
        }
    
        /**
         * 
         * @Description:test ok 2018-08-24
         * 
         * @author Sea
         * 
         * @date 24 Aug 2018 8:34:09 PM
         */
        public static void main(String[] args) {
            boolean mails = new MailUtils().sendMails("212", "123", "hello", "I love you icil", null);
            System.out.println(mails);
        }
    
    }
  • 相关阅读:
    开放式最短路径优先OSPF
    第一课:docker基本知识
    docker 基础
    mycat
    nginx
    keepalived
    mariadb 读写分离
    ansible
    转载 树莓派vnc 教程
    基础命令2
  • 原文地址:https://www.cnblogs.com/lshan/p/9714496.html
Copyright © 2011-2022 走看看