sendMail()

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);
            });
        });
    }