3.10.2.1. 发送方法
要发送电子邮件,在中间件上应使用 EmailerAPI
bean,在客户端层使用 EmailService
服务。
这些组件的基本方法如下所述:
-
sendEmail()
– 同步发送消息。调用代码在消息发送到 SMTP 服务器前一直等待。消息内容由一组参数(逗号分隔的收件人列表,主题,内容,附件数组)组成,并以
EmailInfo
对象的形式传输,该对象封装了所有这些信息并允许显式设置发件人的地址并使用 FreeMarker 模板构造邮件正文。同步发送时可能会抛出
EmailException
,其中包含投递失败的收件人地址的信息,以及相应的错误消息。执行该方法期间,在数据库中为每个收件人创建一个
SendingMessage
实例。发送状态初始值为SendingStatus.SENDING
,成功发送后状态变为SendingStatus.SENT
。如果消息发送错误,消息状态将更改为SendingStatus.NOTSENT
。 -
sendEmailAsync()
- 异步发送消息。此方法返回在数据库中创建的SendingStatus.QUEUE
状态的SendingMessage
实例的列表(列表数量按收件人数)。实际发送是通过随后调用EmailerAPI.processQueuedEmails()
方法执行的,需要为 计划任务设置符合期望的发送邮件频率来调用此方法。