Я хочу написать сервис, с помощью которого я могу создать сообщение электронной почты с указанием (to, cc, bcc, subject, body).Затем мне нужно вернуть это электронное письмо во внешний интерфейс и загрузить его в формате ".oft" таким образом, чтобы при нажатии на этот загруженный файл;файл должен открыться со всеми заполненными полями (to, cc, bcc, subject, body).
Я использую 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);
}
);
}