mirror of
https://gitee.com/nutz/nutzboot.git
synced 2024-12-02 19:58:53 +08:00
完成nutzboot-starter-email
This commit is contained in:
parent
21d374b511
commit
057927a1d9
@ -2,6 +2,7 @@ package io.nutz.demo.simple;
|
|||||||
|
|
||||||
import org.apache.commons.mail.ImageHtmlEmail;
|
import org.apache.commons.mail.ImageHtmlEmail;
|
||||||
import org.nutz.boot.NbApp;
|
import org.nutz.boot.NbApp;
|
||||||
|
import org.nutz.ioc.Ioc;
|
||||||
import org.nutz.ioc.loader.annotation.Inject;
|
import org.nutz.ioc.loader.annotation.Inject;
|
||||||
import org.nutz.ioc.loader.annotation.IocBean;
|
import org.nutz.ioc.loader.annotation.IocBean;
|
||||||
import org.nutz.log.Log;
|
import org.nutz.log.Log;
|
||||||
@ -12,8 +13,9 @@ public class MainLauncher {
|
|||||||
|
|
||||||
private static final Log log = Logs.get();
|
private static final Log log = Logs.get();
|
||||||
|
|
||||||
@Inject
|
|
||||||
ImageHtmlEmail email;
|
@Inject("refer:$ioc")
|
||||||
|
protected Ioc ioc;
|
||||||
|
|
||||||
public static void main(String[] args) throws Exception {
|
public static void main(String[] args) throws Exception {
|
||||||
new NbApp().setPrintProcDoc(true).run();
|
new NbApp().setPrintProcDoc(true).run();
|
||||||
@ -21,14 +23,16 @@ public class MainLauncher {
|
|||||||
|
|
||||||
public void init() {
|
public void init() {
|
||||||
try {
|
try {
|
||||||
//注意垃圾收件箱
|
//ImageHtmlEmail 请不要使用注入模式,每次使用都需要去Ioc取一下
|
||||||
email.setSubject("NutzBootEmainStarter");
|
ImageHtmlEmail htmlEmail = ioc.get(ImageHtmlEmail.class);
|
||||||
|
htmlEmail.setSubject("NutzBootEmainStarter");
|
||||||
//请使用自己的邮箱
|
//请使用自己的邮箱
|
||||||
email.addTo("自己的邮箱");
|
htmlEmail.addTo("自己的邮箱");
|
||||||
email.setHtmlMsg("此邮件是Nutz Boot Email Starter发送给您的测试邮件!");
|
htmlEmail.setHtmlMsg("此邮件是Nutz Boot Email Starter发送给您的测试邮件!");
|
||||||
log.debug("开始邮件发送");
|
log.debug("开始邮件发送");
|
||||||
email.send();
|
htmlEmail.buildMimeMessage();
|
||||||
log.debug("邮件发送完毕");
|
htmlEmail.sendMimeMessage();
|
||||||
|
log.debug("邮件发送完毕-请查收!注意有可能进入垃圾收件箱");
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error(e.getMessage(), e);
|
log.error(e.getMessage(), e);
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,10 @@
|
|||||||
|
package org.nutz.boot.starter.email;
|
||||||
|
|
||||||
|
import org.nutz.ioc.loader.json.JsonLoader;
|
||||||
|
|
||||||
|
public class EmailIocLoader extends JsonLoader {
|
||||||
|
|
||||||
|
public EmailIocLoader() {
|
||||||
|
super("org/nutz/boot/starter/email/email.js");
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,36 @@
|
|||||||
|
package org.nutz.boot.starter.email;
|
||||||
|
|
||||||
|
import org.nutz.boot.annotation.PropDoc;
|
||||||
|
import org.nutz.boot.ioc.IocLoaderProvider;
|
||||||
|
import org.nutz.ioc.IocLoader;
|
||||||
|
|
||||||
|
public class EmailIocLoaderStarter implements IocLoaderProvider {
|
||||||
|
|
||||||
|
protected static final String PRE = "email.";
|
||||||
|
|
||||||
|
@PropDoc(group = "email", value = "email的ip或域名地址", need = true)
|
||||||
|
public static final String PROP_HOSTNAME = PRE + "HostName";
|
||||||
|
|
||||||
|
@PropDoc(group = "email", value = "email的SmtpPort端口", need = true)
|
||||||
|
public static final String PROP_SMTPPORT = PRE + "SmtpPort";
|
||||||
|
|
||||||
|
@PropDoc(group = "email", value = "email的用户名", need = true)
|
||||||
|
public static final String PROP_USERNAME = PRE + "UserName";
|
||||||
|
|
||||||
|
@PropDoc(group = "email", value = "email的密码", need = true)
|
||||||
|
public static final String PROP_PASSWORD = PRE + "Password";
|
||||||
|
|
||||||
|
@PropDoc(group = "email", value = "email开启SSL连接", defaultValue = "true", type = "boolean")
|
||||||
|
public static final String PROP_SSLONCONNECT = PRE + "SSLOnConnect";
|
||||||
|
|
||||||
|
@PropDoc(group = "email", value = "email的写信人", need = true)
|
||||||
|
public static final String PROP_FROM = PRE + "From";
|
||||||
|
|
||||||
|
@PropDoc(group = "email", value = "email的编码", defaultValue = "UTF-8")
|
||||||
|
public static final String PROP_CHARSET = PRE + "charset";
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public IocLoader getIocLoader() {
|
||||||
|
return new EmailIocLoader();
|
||||||
|
}
|
||||||
|
}
|
@ -1,65 +0,0 @@
|
|||||||
package org.nutz.boot.starter.email;
|
|
||||||
|
|
||||||
import org.apache.commons.mail.DefaultAuthenticator;
|
|
||||||
import org.apache.commons.mail.EmailException;
|
|
||||||
import org.apache.commons.mail.ImageHtmlEmail;
|
|
||||||
import org.nutz.boot.AppContext;
|
|
||||||
import org.nutz.boot.annotation.PropDoc;
|
|
||||||
import org.nutz.ioc.Ioc;
|
|
||||||
import org.nutz.ioc.impl.PropertiesProxy;
|
|
||||||
import org.nutz.ioc.loader.annotation.Inject;
|
|
||||||
import org.nutz.ioc.loader.annotation.IocBean;
|
|
||||||
|
|
||||||
@IocBean
|
|
||||||
public class EmailStarter {
|
|
||||||
|
|
||||||
@Inject("refer:$ioc")
|
|
||||||
protected Ioc ioc;
|
|
||||||
|
|
||||||
@Inject
|
|
||||||
protected PropertiesProxy conf;
|
|
||||||
|
|
||||||
@Inject
|
|
||||||
protected AppContext appContext;
|
|
||||||
|
|
||||||
protected static final String PRE = "email.";
|
|
||||||
|
|
||||||
@PropDoc(group = "email", value = "email的ip或域名地址", need = true)
|
|
||||||
public static final String PROP_HOSTNAME = PRE + "HostName";
|
|
||||||
|
|
||||||
@PropDoc(group = "email", value = "email的SmtpPort端口", need = true)
|
|
||||||
public static final String PROP_SMTPPORT = PRE + "SmtpPort";
|
|
||||||
|
|
||||||
@PropDoc(group = "email", value = "email的用户名", need = true)
|
|
||||||
public static final String PROP_USERNAME = PRE + "UserName";
|
|
||||||
|
|
||||||
@PropDoc(group = "email", value = "email的密码", need = true)
|
|
||||||
public static final String PROP_PASSWORD = PRE + "Password";
|
|
||||||
|
|
||||||
@PropDoc(group = "email", value = "email开启SSL连接", defaultValue = "true", type = "boolean")
|
|
||||||
public static final String PROP_SSLONCONNECT = PRE + "SSLOnConnect";
|
|
||||||
|
|
||||||
@PropDoc(group = "email", value = "email的写信人", need = true)
|
|
||||||
public static final String PROP_FROM = PRE + "From";
|
|
||||||
|
|
||||||
@PropDoc(group = "email", value = "email的编码", defaultValue = "utf-8")
|
|
||||||
public static final String PROP_CHARSET = PRE + "charset";
|
|
||||||
|
|
||||||
@IocBean(name = "emailAuthenticator")
|
|
||||||
public DefaultAuthenticator createDefaultAuthenticator() {
|
|
||||||
return new DefaultAuthenticator(conf.get(PROP_USERNAME, ""), conf.get(PROP_PASSWORD, ""));
|
|
||||||
}
|
|
||||||
|
|
||||||
@IocBean(name = "htmlEmail", singleton = false)
|
|
||||||
public ImageHtmlEmail getImageHtmlEmail() throws EmailException {
|
|
||||||
ImageHtmlEmail imageHtmlEmail = new ImageHtmlEmail();
|
|
||||||
imageHtmlEmail.setAuthenticator(createDefaultAuthenticator());
|
|
||||||
imageHtmlEmail.setCharset(conf.get(PROP_CHARSET, "utf-8"));
|
|
||||||
imageHtmlEmail.setHostName(conf.get(PROP_HOSTNAME));
|
|
||||||
imageHtmlEmail.setSmtpPort(conf.getInt(PROP_SMTPPORT));
|
|
||||||
imageHtmlEmail.setFrom(conf.get(PROP_FROM));
|
|
||||||
imageHtmlEmail.setSSLOnConnect(conf.getBoolean(PROP_SSLONCONNECT));
|
|
||||||
return imageHtmlEmail;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1 +0,0 @@
|
|||||||
org.nutz.boot.starter.email.EmailStarter
|
|
@ -0,0 +1 @@
|
|||||||
|
org.nutz.boot.starter.email.EmailIocLoaderStarter
|
@ -0,0 +1,18 @@
|
|||||||
|
var ioc = {
|
||||||
|
emailAuthenticator: {
|
||||||
|
type: "org.apache.commons.mail.DefaultAuthenticator",
|
||||||
|
args: [{java: "$conf.get('email.UserName')"}, {java: "$conf.get('email.Password')"}]
|
||||||
|
},
|
||||||
|
imageHtmlEmail: {
|
||||||
|
type: "org.apache.commons.mail.ImageHtmlEmail",
|
||||||
|
singleton: false,
|
||||||
|
fields: {
|
||||||
|
hostName: {java: "$conf.get('email.HostName')"},
|
||||||
|
smtpPort: {java: "$conf.get('email.SmtpPort')"},
|
||||||
|
authenticator: {refer: "emailAuthenticator"},
|
||||||
|
SSLOnConnect: {java: "$conf.get('email.SSLOnConnect')"},
|
||||||
|
from: {java: "$conf.get('email.From')"},
|
||||||
|
charset: {java: "$conf.get('email.charset')"}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
Loading…
Reference in New Issue
Block a user