配置Mail相关的ioc文件

特别提醒

严重建议用阿里云邮进行测试,QQ邮箱好多坑

打开dao.js, 把conf的定义改一下, 使其能扫描到custom下面所有的配置文件

        conf : {
            type : "org.nutz.ioc.impl.PropertiesProxy",
            fields : {
                paths : ["custom/"]
            }
        },

新增一个文件,路径为 conf/custom/mail.properties 内容如下

mail.HostName=smtp.aliyun.com
mail.SmtpPort=25
mail.UserName=wendal3@aliyun.com
mail.Password=book@2015
mail.SSLOnConnect=false
mail.From=wendal3@aliyun.com
mail.charset=UTF-8

注意,上述账号只是测试用的,密码随时更改,请使用您自己的QQ邮箱信息及服务器地址

再新增一个文件, 路径为 conf/ioc/mail.js 内容如下

var ioc={
    emailAuthenticator : {
        type : "org.apache.commons.mail.DefaultAuthenticator",
        args : [{java:"$conf.get('mail.UserName')"}, {java:"$conf.get('mail.Password')"}]
    },
    htmlEmail : {
        type : "org.apache.commons.mail.ImageHtmlEmail",
        singleton : false,
        fields : {
            hostName : {java:"$conf.get('mail.HostName')"},
            smtpPort : {java:"$conf.get('mail.SmtpPort')"},
            authenticator : {refer:"emailAuthenticator"},
            SSLOnConnect : {java:"$conf.get('mail.SSLOnConnect')"},
            from : {java:"$conf.get('mail.From')"},
            charset : {java:"$conf.get('mail.charset', 'UTF-8')"}
        }
    }
};

含义是, 声明一个非单例的HtmlEmail定义,配置信息均通过conf对象获取.

在MainSetup类的init方法末尾,加入下列测试代码

        // 测试发送邮件
        try {
            HtmlEmail email = ioc.get(HtmlEmail.class);
            email.setSubject("测试NutzBook");
            email.setMsg("This is a test mail ... :-)" + System.currentTimeMillis());
            email.addTo("vt400@qq.com");//请务必改成您自己的邮箱啊!!!
            email.buildMimeMessage();
            email.sendMimeMessage();
        } catch (Exception e) {
            e.printStackTrace();
        }

启动Tomcat,观察日志输出, 如无异常, 您填写的邮箱将会收到一封邮件, 然后务必把上诉测试代码删除!!

  • 抛出端口错误之类的错误: 请使用QQ邮箱等国内地址, 并确保dao.js修改正确
  • 登陆失败,检查一下mail.properties的账号密码,服务器地址等等
  • 发送失败, 别尝试发送给gmail之类的,发自己的邮箱最靠谱

results matching ""

    No results matching ""