• JFinal项目发送邮件——jfinal-mail-plugin


    JFianl框架:

    JFinal 是基于 Java 语言的极速 WEB + ORM 框架,其核心设计目标是开发迅速、代码量少、学习简单、功能强大、轻量级、易扩展、Restful。在拥有Java语言所有优势的同时再拥有ruby、python、php等动态语言的开发效率!为您节约更多时间,去陪恋人、家人和朋友 :)

    JFinal框架有自己的邮件发送插件——jfinal-mail-plugin,支持发送普通邮件,模板邮件,还支持发送附件,jfinal-mail-plugin还可以配置多邮件发送数据源。

    JFinal项目发送邮件插件:jfinal-mail-plugin

    JFinal官方地址:http://www.jfinal.com/project/33

    jfinal-mail-plugin是jfinal的一个邮件发送插件,支持发送普通邮件、与附件邮件,邮件内容支持通过模板生成,同时还支持多个邮件发送源,她继承了Jfinal核心目标“开发迅速,代码量少,学习简单。。。”,只需简单的2行代码即可实现邮件发送!为您节约更多时间,去陪恋人、家人和朋友 :) ,核心代码通过spring-context-support包的邮件模块移植,JavaMailSender对象如何发送邮件可直接参照Spring的邮件发送文档。

    码云源码地址:https://gitee.com/xiyoufang/jfinal-mail-plugin

    以上是该项目的源码,使用时直接调用就可以。

    使用方法:

    和使用JFinal一样,只需要在pom文件中引入jfinal-mail-plugin即可。

    在pom中添加jfinal-mail-plugin:

        <dependency>
          <groupId>cn.fsdev</groupId>
          <artifactId>jfinal-mail-plugin</artifactId>
          <version>3.0</version>
        </dependency>

    添加邮件配置文件:

    #邮箱HOST
    host=smtp.qq.com
    #协议
    protocol=smtp
    #端口
    port=465
    #发送邮箱
    username=**@qq.com
    #密码
    password=**
    #权限认证
    mail.smtp.auth=true
    #超时时间
    mail.smtp.timeout=5000
    #是否是ssl
    mail.smtp.ssl.enable=true

    项目启动时启动jfinal-mail-plugin插件:

    me.add(new MailPlugin(PropKit.use("mail.properties").getProperties()));

    发送普通邮件:

        public void senmail(){
            System.out.println("发送邮件:");
            try{
                MailKit.send("**@qq.com", null, "邮件标题", "邮件内容");
                System.out.println("成功");
            }catch (Exception e){
                System.out.println("失败");
                e.printStackTrace();
            }
        }

    我们可以看到邮件发送工具 MailKit 的代码:

    package com.jfplugin.mail;
    
    import java.io.File;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    
    import com.jfplugin.mail.core.JavaMailSender;
    
    /**
     * 发送邮件工具
     * @author farmer
     *
     */
    public class MailKit {
        
        static Map<String, MailPro> proMap = new HashMap<String, MailPro>();
        
        static MailPro mailPro = null;
        
        /**
         * 
         * @param configName
         * @param mailPro
         */
        static void init(String configName , MailPro mailPro){
            if(proMap.get(configName) != null){
                throw new RuntimeException(configName+"配置的Mail已经存在!");
            }
            proMap.put(configName, mailPro);
            if(MailPlugin.MAIN_CONFIG.equals(configName)){
                MailKit.mailPro = mailPro;
            }
        }
        
        /**
         * 
         * @param configName
         * @return
         */
        public static MailPro use(String configName){
            MailPro mailPro = proMap.get(configName);
            if(mailPro == null){
                throw new RuntimeException(configName+"配置的Mail不存在!");
            }
            return mailPro;
        }
        
        /**
         * 发送邮件
         * @param to
         *     收件人
         * @param cc
         *     发件人
         * @param subject
         *     主题
         * @param text
         *     内容
         */
        public static void send(String to,List<String> cc,String subject,String text){
            mailPro.send(to, cc, subject, text);
        }
        
        /**
         * 发送邮件
         * @param to
         *     收件人
         * @param cc
         *     发件人
         * @param subject
         *     主题
         * @param text
         *     内容
         * @param attachments
         *     附件
         * 
         */
        public static void send(String to,List<String> cc,String subject,String text,List<File> attachments){
            mailPro.send(to, cc, subject, text,attachments);
        }
        
        /**
         * 
         * @param to
         * @param cc
         * @param subject
         * @param viewpath
         * @param dataMap
         */
        public static void send(String to,List<String> cc ,String subject,String viewpath ,Map<String, Object> dataMap){
            mailPro.send(to, cc, subject, viewpath , dataMap);
        }
        
        /**
         * 
         * @param to
         * @param cc
         * @param subject
         * @param viewpath
         * @param dataMap
         * @param attachments
         */
        public static void send(String to,List<String> cc ,String subject,String viewpath ,Map<String, Object> dataMap,List<File> attachments){
            mailPro.send(to, cc, subject, viewpath , dataMap , attachments);
        }
    
        /**
         * 获取JavaMailSender
         * @return
         * 当前实例的JavaMailSender,用来定制化更复杂的邮件发送需求
         */
        public static JavaMailSender getMailSender(){
            return mailPro.getMailSender();
        }
        
    }

    从 MailKit 的代码中我们可以看到他的多种形式的邮件发送,只是参数的不同。

    jfinal-mail-plugin配置多邮件数据源:

    不同的邮件源写在不同的properties配置文件中。

    然后在启动插件时指定发送源:

    me.add(new MailPlugin(“mail2”,PropKit.use(“mail2.properties”).getProperties()));

    最后在MailKit发送邮件时指定发送源:

    MailKit.use(“mail2”).send(…);
  • 相关阅读:
    P4396 [AHOI2013]作业
    NOIP2018普及T2暨洛谷P5016 龙虎斗
    NOIP2018普及T1暨洛谷P5015 标题统计 题解
    【交题大桥】团队信息存档
    markdown浅谈
    洛谷P1690 贪婪的Copy 题解
    洛谷P4994 终于结束的起点 题解
    洛谷P4995 跳跳!题解
    这么多都变了,洛谷4还会远吗?
    洛谷P1396 营救 题解
  • 原文地址:https://www.cnblogs.com/jiangwz/p/8707481.html
Copyright © 2020-2023  润新知