Отправлять электронную почту с вложением (sendRawEmail), не отправляя электронную почту при работе на AWS Lambda - PullRequest
1 голос
/ 04 апреля 2019

У меня есть следующий код, который хорошо работает, когда я запускаю код локально, он успешно отправляет электронное письмо, но при помещении того же кода в лямбда-код AWS (НЕТ VPC и с ролью свойств полного доступа SES) он не 'не могу отправить электронное письмо, что я делаю не так?

const aws = require('aws-sdk');
aws.config.update({
  "region": "eu-west-1",
  accessKeyId: 'myAccessKey',
  secretAccessKey: 'mySecretAccessKey'
});

/**
 * Send email with attachment.
 * 
 * @param {string} sourceEmail
 * @param {string} toEmail
 * @param {string} subject
 * @param {string} body
 * @param {string} fileName
 * @param {buffer} attachmentBuffer
 * 
 * @returns {void}
 */
module.exports.sendEmailWithAttachment = async (sourceEmail, toEmail, subject, body, fileName, attachmentBuffer) => {

    try {

        var sesEmail = "From: '" + subject + "' <" + sourceEmail + ">\n";
        sesEmail += "To: " + toEmail + "\n";
        sesEmail += "Subject: " + subject + "\n";
        sesEmail += "MIME-Version: 1.0\n";
        sesEmail += "Content-Type: multipart/mixed; boundary=\"NextPart\"\n\n";
        sesEmail += "--NextPart\n";
        sesEmail += "Content-Type: text/html\n\n";
        sesEmail += body+"\n\n";
        sesEmail += "--NextPart\n";
        sesEmail += "Content-Type: application/octet-stream; name=\"" + fileName + "\"\n";
        sesEmail += "Content-Transfer-Encoding: base64\n";
        sesEmail += "Content-Disposition: attachment\n\n";
        sesEmail += attachmentBuffer.toString("base64").replace(/([^\0]{76})/g, "$1\n") + "\n\n";
        sesEmail += "--NextPart--";

        var params = {
            RawMessage: {Data: sesEmail},
            Source: "'"+ subject + "' <" + sourceEmail + ">'"
        };


        await new aws.SES().sendRawEmail(params).promise();        


    } catch (err){

        console.log(err);
    }
};

Исходное электронное письмо занесено в белый список, что также подтверждено на панели инструментов AWS SES.

Также следует отметить, что я не вижукакие-либо ошибки в логах cloudwatch.

Кто-нибудь знает, что мне не хватает?

Локально работает без проблем!Вложение идет также хорошо.

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...