Как отправить письмо с вложением .xlsx в sendgrid? - PullRequest
0 голосов
/ 25 июня 2018

Ниже представлен объект сообщения, используемый для отправки электронных писем.

 message = {
        to: toEmail,
        from: emailInfo.emailFromAddress,
        subject: emailInfo.emailSubjectTemplate,
        attachments: [
          {
            filename: fileName,
            content: base64str,
            contentId: fileName,
            disposition: "attachment"
          }
        ],
        html: emailMessageBodyTemplate
      };

Содержимое кодируется в строку base64 с помощью следующего кода ниже.

const base64_encode = file => {
  var bitmap = fs.readFileSync(file);
  return new Buffer(bitmap).toString("base64");
};

Я не знаю, где я иду не так, но я получаю ошибку следующим образом.

сообщение: «Значение содержимого должно быть строкой длиной не менее одного символа.»

но содержимое не пустое, когда я отлаживаю, это строка base64.

Пожалуйста, помогите.

1 Ответ

0 голосов
/ 25 июня 2018

На этой странице точно описана ваша ошибка.

Я считаю, что это сообщение об ошибке означает, что ваше сообщение или текст, как ошибка описывает

Вы не можете отправлять электронную почту без содержания.

В соответствии с документами API вам не хватает обязательного содержимого параметра.

message = {
            to: toEmail,
            from: emailInfo.emailFromAddress,
            subject: emailInfo.emailSubjectTemplate,
            content:[
              {
                 type : 'string',
                 value : 'message'
              }
            ],
            attachments: [
              {
                filename: fileName,
                content: base64str,
                contentId: fileName,
                disposition: "attachment"
              }
            ],
            html: emailMessageBodyTemplate
          };

Надеюсь, это поможет.

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