我想编写一项服务,通过该服务我可以创建指定了(收件人,抄送,密件抄送,主题,正文)的电子邮件。然后,我需要将此电子邮件返回到前端,并以“ .oft”格式下载,当我单击此下载文件时,该方式应为:文件应打开,并填充所有字段(收件人,抄送,密件抄送,主题,正文)。
我正在使用Java作为后端技术,并使用angular5作为前端。
我尝试使用javax.mail实用工具创建电子邮件并将其作为字节数组返回。像这样:
Properties prop = System.getProperties();
Session session = Session.getDefaultInstance(prop, null);
Message msg = new MimeMessage(session);
msg.setFrom(new InternetAddress("emailAddr@domain.com"));
msg.addRecipient(Message.RecipientType.TO, new InternetAddress("emailAddr@domain.com"));
msg.setSentDate(new Date());
msg.setSubject("subject");
msg.setText("text of msg");
//return it from service API as
response.getOutputStream().write(msg.toString().getBytes());
在前端(component.ts文件)中,我将响应检索为:
//function gets called on button click
createEmailTemplate():void{
this.httpService.getEmail('serviceUrl')
.subscribe(
email => {
let filename = "SampleMailFile.oft";
let linkElement = document.createElement('a');
let blob = new Blob([email], { type: "message/rfc822"});
let url = window.URL.createObjectURL(blob);
linkElement.setAttribute('href', url);
linkElement.setAttribute("download", filename);
let clickEvent = new MouseEvent("click", {
"view": window,
"bubbles": true,
"cancelable": false
});
linkElement.dispatchEvent(clickEvent);
}
);
}
答案 0 :(得分:0)
MSG文件应该与OFT文件具有相同的格式。如果是这样,那么您应该可以使用jotlmsg来生成文件。您完全不需要使用JavaMail,因为它实际上是用来发送邮件的。
注意::我之前从未使用过此库,因此无法说出它是否真正可行。