package com.github.ltsopensource.alarm.email; import com.github.ltsopensource.alarm.AbstractAlarmNotifier; import com.github.ltsopensource.alarm.AlarmNotifyException; import com.github.ltsopensource.core.AppContext; import com.github.ltsopensource.core.cluster.Config; import com.github.ltsopensource.core.constant.ExtConfig; /** * @author Robert HG (254963746@qq.com) on 2/17/16. */ public class EmailAlarmNotifier extends AbstractAlarmNotifier<EmailAlarmMessage> { private MailManager mailManager; public EmailAlarmNotifier(AppContext appContext) { this.mailManager = getMailManager(appContext); } private MailManager getMailManager(AppContext appContext) { Config config = appContext.getConfig(); String host = config.getParameter(ExtConfig.MAIL_SMTP_HOST); String port = config.getParameter(ExtConfig.MAIL_SMTP_PORT); String userName = config.getParameter(ExtConfig.MAIL_USERNAME); String password = config.getParameter(ExtConfig.MAIL_PASSWORD); String adminAddress = config.getParameter(ExtConfig.MAIL_ADMIN_ADDR); boolean sslEnabled = config.getParameter(ExtConfig.MAIL_SSL_ENABLED, true); return new SMTPMailManagerImpl(host, port, userName, password, adminAddress, sslEnabled); } @Override protected void doNotice(EmailAlarmMessage message) { try { mailManager.send(message.getTo(), message.getTitle(), message.getMsg()); } catch (Exception e) { throw new AlarmNotifyException("EmailAlarmNotifier send error", e); } } }