在工作中,经常遇到警告、异常等数据,需要以某些方式告知维护人员。比较通常的方式是邮件,也有用企业微信的。通常邮件使用apache的emali工具类。
添加maven依赖:
<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-email --> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-email</artifactId> <version>1.5</version> </dependency>
讯享网
application.yml添加配置
讯享网srping: email: host: .com #邮件服务器 from: @.com #邮件发送账户 username: @.com #发送账户的用户名 password: #发送账户的密码 defaultEncoding: UTF-8 to: @.com #接收账户 title: #邮箱标题
邮箱配置类
@Configuration @ConfigurationProperties(prefix = "spring.email") public class EmailConfig { private String host; private String from; private String username; private String password; private String defaultEncoding; private String to; private String title; }
发送邮件工具类
讯享网public class EmailUtil { private EmailConfig emailConfig; private Logger logger = LoggerFactory.getLogger(getClass()); public EmailUtil(EmailConfig emailConfig) { this.emailConfig = emailConfig; } public <T> void sendMsg(T e) { try { Email email = initEmail(emailConfig); sendData(email, e); email.send(); } catch (EmailException ex) { logger.error("=============邮件发送失败============", ex); } } private Email initEmail(EmailConfig emailConfig) throws EmailException { Email email = new SimpleEmail(); email.setHostName(emailConfig.getHost()); email.setCharset(emailConfig.getDefaultEncoding()); email.setSmtpPort(25); email.setAuthentication(emailConfig.getUsername(), emailConfig.getPassword()); //email.setSSLOnConnect(true); email.setFrom(emailConfig.getFrom()); email.setSubject(emailConfig.getTitle()); //email.setMsg(errMsg); email.addTo(emailConfig.getTo().split(";")); //email.send(); return email; } public static void send(Email email) throws EmailException { email.send(); } private <T> void sendData(Email email, T e) throws EmailException { if (e instanceof String) { email.setMsg((String) e); } else if (e instanceof Exception) { Exception ex = (Exception) e; String errMsg = ex.getMessage() + "\n"; for (StackTraceElement element : ex.getStackTrace()) { errMsg += "\tat " + String.valueOf(element); } email.setMsg(errMsg); } } }
使用的地方这样调
@Autowired private EmailConfig emailConfig; @Test public void testSendEmail() { try { int bigDecimal = 10/0; }catch (Exception e){ new EmailUtil(emailConfig).sendMsg(e); } }

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/129491.html