in source/aws-connect-vm-serverless/src/service/notification.service.js [131:180]
sendMail(voicemail, fromEmailAddress, toEmailAddress, deliveryContent) {
return new Promise((resolve, reject) => {
let voicemailDate = new Date(voicemail.timestamp * 1000);
// Date
let html = `<p>${voicemailDate}</p>`;
html += `<p>New voicemail from ${voicemail.contactPhoneNumber}.</p>`;
// Transcript
if (deliveryContent.transcription) {
html += `<b>Voicemail Transcript:</b><p>${deliveryContent.transcription.transcripts[0].transcript}</p>`;
}
// Voicemail
html += `<b>Voicemail:</b>`;
if (deliveryContent.preSignedUrl) {
// Expiration Date
let expirationDate = new Date(Math.floor((Date.now() / 1000) + deliveryContent.preSignedUrl.expires) * 1000);
html += `<p>Voicemail Expiration Date: ${expirationDate}</p>`;
// Audio Link
let audioLink = `<p><a href="${deliveryContent.preSignedUrl.url}">Click Here</a> to listen to the voicemail</p>`;
html += audioLink;
}
let mailOptions = {
from: fromEmailAddress,
subject: `New voicemail from ${voicemail.contactPhoneNumber}`,
html,
to: toEmailAddress
};
// Audio Attachment
if (deliveryContent.audioFile) {
mailOptions["attachments"] = [{
filename: "voicemail.wav",
content: deliveryContent.audioFile.Body
}];
}
this.transporter.sendMail(mailOptions, (err, info) => {
if (err) {
console.log(err);
reject(err);
return;
}
resolve(info);
});
});
}