# EMail邮箱[电子邮件]组件
系统内置有发送邮件相关接口,可以复用。
# 核心接口WebmailApi
代码及注释如下:
/**
* 电子邮件接口
*/
public interface WebmailApi {
/**
* 判断人员是否有默认邮箱
*
* 正常:<br>
* 1、传入正确的人员id(人员有默认邮箱),返回true<br>
* 2、传入正确的人员id(人员没有默认邮箱),返回false<br>
*
* @param memberId 人员id
* @return
* @throws BusinessException
*/
public boolean hasDefaultMbc(Long memberId) throws BusinessException;
/**
* 获取人员邮件所占空间大小
*
* 正常:<br>
* 1、传入正确的人员id,返回邮件所占空间大小<br>
*
* @param memberId 人员id
* @return
*/
public long getMailSpaceSize(Long memberId) throws BusinessException;
/**
* 转发邮件
*
* 正常:<br>
* 1、传入正确的协同id、标题、正文内容、附件列表,返回邮件实体<br>
* 2、传入正确的计划id、标题、正文内容、附件列表为空,返回邮件实体<br>
* 3、传入正确的文档id、标题、正文内容为空、附件列表为空,返回邮件实体<br>
* 异常:<br>
* 4、所有参数传入null,抛异常<br>
*
* @param referenceId 源id,如:协同id/文档id
* @param subject 标题
* @param body 正文内容
* @param attachments 附件列表
* @return
*/
public ModelAndView forwardMail(Long referenceId, String subject, String body, List<Attachment> attachments);
}
# 调用示例
public class ColManagerImpl implements ColManager {
private WebmailApi webmailApi;
public void setWebmailApi(WebmailApi webmailApi) {
this.webmailApi = webmailApi;
}
/**
* 协同转发邮件
* @param params
* @return
* @throws BusinessException
*/
public ModelAndView getforwordMail(Map params) throws BusinessException {
User user = AppContext.getCurrentUser();
try {
// 判断人员是否有默认邮箱,无邮箱则重定向到错误页面
boolean hasDefaultMbc = webmailApi.hasDefaultMbc(user.getId());
if(!hasDefaultMbc){
ModelAndView mav = new ModelAndView("webmail/error");
mav.addObject("errorMsg", "2");
mav.addObject("errorUrls", "?method=list&jsp=set");
return mav;
}
} catch (Exception e1) {
LOG.error("调用邮件接口判断当前用户是否有邮箱设置:", e1);
}
Long summaryId; // 源id,如:协同id/文档id
String subject; //标题
String bodyContent; // 正文内容
List<Attachment> attachments; // 附件列表
// 调用转发动作
ModelAndView mv = webmailApi.forwardMail(summaryId, subject, bodyContent, attachments);
return mv;
}
}
编撰人:het
← 系统消息组件 PhantomJs打印组件 →
