spring发邮件_跟踪异常–第4部分– Spring的邮件发件人

spring发邮件

如果您阅读过本系列以前的任何博客,您可能会记得我正在开发一个小型但几乎具有工业实力的应用程序,该应用程序在日志文件中搜索异常。 您可能还记得,我现在有一个可以包含大量结果的类,这些结果需要发送给感兴趣的任何人。 这将通过实现下面显示的简单Publisher界面来完成。

public interface Publisher { public <T> boolean publish(T report); 
}

如果您还记得,那么要求是:

7 . Publish the report using email or some other technique.

在此博客中,我要处理需求的具体部分:通过电子邮件发送报告。 由于这是Spring应用程序,因此发送电子邮件的最简单方法是使用Spring的电子邮件类。 与Spring API的坚定支持不同,Spring电子邮件类基于JdbcTemplate和JmsTemplate之类的模板类,它基于几个接口及其实现。 这些接口是:

  1. 邮件发件人
  2. JavaMailSender扩展MailSender
  3. 邮件留言

……实现是:

  1. JavaMailSenderImpl实现JavaMailSender
  2. SimpleMailMessage实现MailMessage

请注意,这些是“基本”类; 您可以使用诸如MimeMailMessage,MimeMailMessageHelper,ConfigurableMimeFileTypeMap和MimeMessagePreparator之类的类发送美观,更复杂的电子邮件内容。

在编写一些代码之前,几乎没有什么项目配置问题。 要使用Spring电子邮件类,您需要在Maven POM文件中输入以下内容:

<dependency><groupId>javax.mail</groupId><artifactId>mail</artifactId><version>1.4</version>
</dependency>

这样可以确保基础Java Mail类可用于您的应用程序。

在构建中配置完Java Mail类后,接下来要做的就是设置Spring XML配置。

<!-- Spring mail configuration --><bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl"><property name="host" value="${mail.smtp.host}"/></bean><!-- this is a template message that we can pre-load with default state --><bean id="mailMessage" class="org.springframework.mail.SimpleMailMessage"><property name="to" value="${mail.to}"></property><property name="from" value="${mail.from}"/><property name="subject" value="${mail.subject}"/></bean>

对于这个应用程序,这是发出自动报告的目的,我已经包括了两个弹簧豆: mailSendermailMessagemailSender是一个JavaMailSenderImpl实例,该实例配置为使用特定的SMTP邮件服务器,并将所有其他属性(例如TCP端口)保留为默认值。

第二个春天bean是mailMessage ,实例SimpleMailMessage 。 这次,我已经预配置了三个属性:“至”,“来自”和“主题”。 这是因为,作为自动消息,这些值始终相同。

当然,您可以以编程方式配置这些,如果要创建邮件GUI,可能需要做一些事情。

所有这些XML使Publisher的实现非常简单。

@Service 
public class EmailPublisher implements Publisher { private static final Logger logger = LoggerFactory.getLogger(EmailPublisher.class); @Autowired private MailSender mailSender; @Autowired private SimpleMailMessage mailMessage; @Override public <T> boolean publish(T report) { logger.debug("Sending report by email..."); boolean retVal = false; try { String message = (String) report; mailMessage.setText(message); mailSender.send(mailMessage); retVal = true; } catch (Exception e) { logger.error("Can't send email... " + e.getMessage(), e); } return retVal; } }

Publisher类包含一个方法: publish ,它采用通用参数T report 。 正如我之前所说,此类型必须与我以前的博客中Formatter实现返回的参数类型相同。

这段代码中实际上只需要考虑三个步骤:首先,将通用T强制转换为String (如果参数T report不是String ,这将全部掉下来)。

第二步是将电子邮件的正文附加到mailMessage ,然后发送使用消息mailSender.send(…)

最后一步是通过返回true来履行Publisher合同,除非电子邮件发送失败,在这种情况下,将记录异常并且返回值为false

在开发相关代码方面。 下一步是整理计划,以便按时生成报告,但稍后会更多……

  • 该博客的代码可在Github上找到: https : //github.com/roghughe/captaindebug/tree/master/error-track 。

如果您想查看本系列中的其他博客,请在这里看……

  1. 使用Spring跟踪应用程序异常
  2. 使用Spring跟踪异常–第2部分–委托模式
  3. 错误跟踪报告–第3部分–策略和软件包私有

翻译自: https://www.javacodegeeks.com/2014/04/tracking-exceptions-part-4-springs-mail-sender.html

spring发邮件

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/341863.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

光纤收发器分发射和接收吗?光纤收发器配对使用问题详解!

光纤收发器是光口与电口之间的转换&#xff0c;是网口通过光纤来延伸的一种设备&#xff0c;光纤收发器作为光电转换设备一般是成对使用&#xff0c;但也可以出现光纤收发器与光纤交换机、光纤收发器与SFP收发器配对使用也是可以的&#xff0c;原则上只要光传输波长是一样的、信…

【渝粤教育】国家开放大学2019年春季 2773特种动物养殖 参考试题

试卷代号&#xff1a;2773 特种动物养殖试题 2019年7月 一、单项选择题&#xff08;共15分&#xff0c;每题3分&#xff09; 1&#xff0e;母兔有一对完全独立的子宫&#xff0c;属( )类型。 A&#xff0e;双角子宫 B&#xff0e;单子宫 C&#xff0e;双子宫 D&#xff0e;双分…

【渝粤教育】国家开放大学2019年春季 4有机合成单元反应 参考试题

科目编号&#xff1a;0004 座位号&#xff1a; 2018-2019学年度第二学期期末考试 有机合成单元反应试题 2019年7月 一、选择题&#xff08;每小题3分&#xff0c;共45分&#xff09; 1、分子结构中具有&#xff08; )官能团的有机化合物&#xff0c;通常称之为羧酸。 A&…

光纤收发器元器件指标详情

在以太网光纤收发器设计中&#xff0c;元器件的选择举足轻重&#xff0c;它决定了产品的性能、寿命和成本。光电介质转换芯片(OEMC)是整个收发器的核心。选择介质转换芯片是以太网光纤收发器设计的第一步&#xff0c;也是非常重要的一步。它的选择直接影响和决定了其它元器件的…

【渝粤教育】国家开放大学2019年春季 771初级会计实务(二) 参考试题

科目编号&#xff1a;[0771] 座位号 2018-2019学年度第二学期期末考试 初级会计实务&#xff08;二&#xff09; 试题 2019年 7 月 一、单选题&#xff08;本大题共10小题&#xff0c;每小题3分&#xff0c;共计30分&#xff09; &#xff08;★请考生务必将答案填入到下面对应…

【渝粤教育】电大中专电大中专计算机应用基础考试考核试题作业 题库

CAE是目前发展迅速的应用领域之一&#xff0c;其含义是&#xff08; &#xff09; A.计算机辅助教育 B.计算机辅助制造 C.计算机辅助设计 D.计算机辅助工程 错误 正确答案&#xff1a;左边查询 学生答案&#xff1a;A 2.大规模和超大规模集成电路芯片组成的微型计算机属于现代计…

如何在网络中成对使用光纤收发器?

我们知道&#xff0c;传统以太网中非屏蔽双绞线的传输距离只能达到100米&#xff0c;而且很容易受到电磁干扰(EMI)&#xff0c;导致网络性能不佳。以太网光纤收发器的出现有效地将传统以太网和现代光纤网络结合在一起&#xff0c;完美地解决了上述问题。那么&#xff0c;如何在…

职业综合英语 章节答案考试答案 深圳职业技术学院[渝粤教育]

教育 -职业综合英语-章节资料考试资料-深圳职业技术学院【】 Quiz 1、【判断题】 Google is the world’s most popular website. A、正确 B、错误 参考资料【 】 2、【判断题】Larry Page set up Google in January 1996 at Stanford. A、正确 B、错误 参考资料【 】 3、【判断…

junit:junit_JUnit ExpectedException规则:超越基础

junit:junitJUnit测试中有多种处理异常的方法。 正如我在以前的一篇文章中所写的那样 &#xff0c;我最好的方法是使用org.junit.rules.ExpectedException规则。 基本上&#xff0c;规则是对org.junit.Before &#xff0c; org.junit.After &#xff0c; org.junit.BeforeClass…

什么是工业光纤收发器,工业收发器的作用是什么?

工业收发器是发射器和接收器的组合&#xff0c;两者共享公共电路。通常&#xff0c;收发器用于无线通信系统中。从历史上看&#xff0c;收发器用于将计算机连接到外围设备&#xff0c;例如打印机&#xff0c;键盘&#xff0c;调制解调器&#xff0c;操纵杆和鼠标。当前&#xf…

自动化测试在CI CD管道中的作用

业界广泛采用的软件开发实践&#xff1a;持续集成和持续部署可确保良好地交付产品并经常交付。 常规代码提交需要常规/连续测试&#xff0c;而如果忽略它&#xff0c;则可能导致基础架构无法恢复。 如何交付坚固的CI CD管道&#xff1f; 对于许多公司来说&#xff0c;这是一个问…

VGA光纤收发器特点及参数

VGA光纤收发器采用先进的非压缩数字高清视频和高速数字光纤传输技术&#xff0c;可以轻松地将计算机主机、高清视频信号源、高清DVD/DVR等设备输出的各种分辨率的VGA高清视频信号长距离传输到远端的器件。那么&#xff0c;VGA光纤收发器的特点及技术参数有哪些呢&#xff1f;接…

单模单纤光纤收发器指示灯及故障问题详解

光纤收发器是现在网络传输中应用比较广泛的设备了&#xff0c;其特点是成对使用&#xff0c;体积小&#xff0c;传输距离远&#xff08;25KM&#xff09;。在实际应用中难免会碰到一些故障&#xff0c;现杭州飞畅科技的小编就光纤收发器使用过程中的相关指示灯及故障问题整理如…

POE供电光纤收发器在网络监控中的应用

现如今&#xff0c;随着安防行业的不断发展&#xff0c;在传输信号的过程中对载体提出了更高的要求。光口交换机固然有其成本&#xff0c;市场化程度高等优点&#xff0c;但在网络摄像机越来越多的运用到光纤收发器加光纤交换机的方案。接下来就由飞畅科技的小编来为大家介绍下…

javafx canvas_JavaFX技巧2:使用Canvas API进行清晰绘图

javafx canvas最初开始使用Canvas API时&#xff0c;我注意到渲染代码的结果有些模糊&#xff0c;甚至更糟&#xff0c;不一致。 有些线条模糊&#xff0c;有些线条清晰。 来自Swing&#xff0c;我花了一些时间才意识到这是由JavaFX的坐标系引起的&#xff0c;该坐标系允许双精…

什么是单模光纤收发器,应用范围有哪些?

现在&#xff0c;随着各项网络技术的突飞猛进&#xff0c;在许多网络应用场合都会需要光纤收发器进行远距离的传输&#xff0c;以致于现在国外和国内生产光纤收发器厂商非常多&#xff0c;产品线也极为丰富。在上一篇我们介绍了光纤收发器的分类&#xff0c;今天&#xff0c;就…

Zing加快了JVM应用程序的预热

Java虚拟机&#xff08;JVM&#xff09;提供了托管运行时环境&#xff0c;用于安全部署应用程序&#xff0c;其性能通常可以超过本机编译语言&#xff08;如C和C &#xff09;的性能。 通过即时&#xff08;JIT&#xff09;编译进行垃圾收集和自适应编译的内存管理是两个最突出…

单模光纤收发器产品介绍及常见分类方式

现如今&#xff0c;随着网络技术的进步&#xff0c;许多的场合都会需要光纤收发器进行远距离的传输&#xff0c;以致于现在国外和国内生产光纤收发器厂商非常多&#xff0c;产品线也极为丰富。收发器都是电转光的网络结构。接下来我们就来为大家详细介绍下单模光纤收发器以及光…

多模光纤收发器的基本参数及主要特点

多模光纤收发器具备地址过滤、网络分段及智能报警等功能&#xff0c;可提高网络工作效率及网络运行可靠性。飞畅科技10/100M双芯多模自适应以太网光纤收发器&#xff0c;采用最新美国KENDIN芯片&#xff0c;高品质光收发一体模块&#xff0c;性能稳定&#xff0c;质量优良。适用…

没有垃圾回收的JVM

JVM社区不断增加新的GC&#xff0c;最近又添加了一个新的GC&#xff0c;它称为Epsilon &#xff0c;是非常特殊的一个。 Epsilon仅分配内存&#xff0c;但不会回收任何内存。 看起来好像不执行任何垃圾回收的GC用途是什么。 这种类型的垃圾收集器有特殊用途&#xff0c;我们将…