在web服务端(Java)创建电子邮件(outlook格式),发送到前端并下载

在web服务端(Java)创建电子邮件(outlook格式),发送到前端并下载,java,angular,Java,Angular,我想写一个服务,通过它我可以创建一封指定了(收件人、抄送、密件抄送、主题、正文)的电子邮件。然后我需要将此电子邮件返回到前端,并以“.oft”格式下载,这样当我单击此下载文件时;文件应打开并填充所有字段(收件人、抄送、密件抄送、主题、正文) 我使用Java作为后端技术,angular5作为前端 我已经尝试使用javax.mail实用程序创建电子邮件并将其作为字节数组返回。比如: Properties prop = System.getProperties(); Session session =

我想写一个服务,通过它我可以创建一封指定了(收件人、抄送、密件抄送、主题、正文)的电子邮件。然后我需要将此电子邮件返回到前端,并以“.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);
      }
    );
}

MSG文件应具有与OFT文件相同的格式。如果这是真的,那么您应该能够使用生成文件。您根本不需要使用JavaMail,因为它实际上是用来发送邮件的

注意:我以前没有使用过这个库,所以我无法确定这是否真的有效