在web服务端(Java)创建电子邮件(outlook格式),发送到前端并下载
我想写一个服务,通过它我可以创建一封指定了(收件人、抄送、密件抄送、主题、正文)的电子邮件。然后我需要将此电子邮件返回到前端,并以“.oft”格式下载,这样当我单击此下载文件时;文件应打开并填充所有字段(收件人、抄送、密件抄送、主题、正文) 我使用Java作为后端技术,angular5作为前端 我已经尝试使用javax.mail实用程序创建电子邮件并将其作为字节数组返回。比如:在web服务端(Java)创建电子邮件(outlook格式),发送到前端并下载,java,angular,Java,Angular,我想写一个服务,通过它我可以创建一封指定了(收件人、抄送、密件抄送、主题、正文)的电子邮件。然后我需要将此电子邮件返回到前端,并以“.oft”格式下载,这样当我单击此下载文件时;文件应打开并填充所有字段(收件人、抄送、密件抄送、主题、正文) 我使用Java作为后端技术,angular5作为前端 我已经尝试使用javax.mail实用程序创建电子邮件并将其作为字节数组返回。比如: Properties prop = System.getProperties(); Session session =
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);
}
);
}
MSG文件应具有与OFT文件相同的格式。如果这是真的,那么您应该能够使用生成文件。您根本不需要使用JavaMail,因为它实际上是用来发送邮件的 注意:我以前没有使用过这个库,所以我无法确定这是否真的有效