Запустить шаблон электронной почты sendgrid с помощью метеора

Я использую sendgrid для отправки электронного письма. Я хочу отправить шаблон по электронной почте пользователям. Ниже код просто отправляет простое текстовое электронное письмо вместо определения части заголовков и использования идентификатора шаблона.

if (Meteor.isServer) {
    Email.send({
        from: "from@mailinator.com",
        to: "abc@mail.com",
        subject: "Subject",
        text: "Here is some text",
        headers: {"X-SMTPAPI": {
            "filters" : {
                "template" : {
                    "settings" : {
                        "enable" : 1,
                        "Content-Type" : "text/html",
                        "template_id": "3fca3640-b47a-4f65-8693-1ba705b9e70e"
                    }
                }
            }
        }
        }



    });
}

Ваша помощь будет высоко оценена.

Лучший

1 ответ

Для отправки транзакционных шаблонов SendGrid у вас есть разные варианты

1) С помощью SMPT API SendGrid

В этом случае мы можем использовать почтовый пакет Meteor (как вы пытались).

Чтобы добавить пакет с метеорологическим письмом, нам нужно ввести команду sell:

meteor add email

В этом случае, согласно документации SendGrid:

text свойство подставляется в <% body%> текстового шаблона и html подставляется в <% body%> шаблона HTML. Если text свойство присутствует, но нет html, тогда полученное письмо будет содержать только текстовую версию шаблона, а не версию HTML.

Так что в вашем коде вы должны предоставить http собственность тоже, вот и все.

Это может быть ваш код сервера:

// Send via the SendGrid SMTP API, using meteor email package
Email.send({
  from: Meteor.settings.sendgrid.sender_email,
  to: userEmail,
  subject: "your template subject here",
  text: "template plain text here",
  html: "template body content here",
  headers: {
    'X-SMTPAPI': {
      "filters": {
        "templates": {
          "settings": {
            "enable": 1,
            "template_id": 'c040acdc-f938-422a-bf67-044f85f5aa03'
          }
        }
      }
    }
  }
});

2) Через SendGrid Web API v3

Ты можешь использовать meteor http пакет для использования SendGrid Web API v3 ( здесь документы). В этом случае мы можем использовать пакет Meteor http.

Чтобы добавить пакет Meteor http, введите в оболочке:

meteor add http

Тогда в вашем коде сервера вы можете использовать

// Send via the SendGrid Web API v3, using meteor http package
var endpoint, options, result;

endpoint = 'https://api.sendgrid.com/v3/mail/send';

options = {
  headers: {
    "Authorization": `Bearer ${Meteor.settings.sendgrid.api_key}`,
    "Content-Type": "application/json"
  },
  data: {
    personalizations: [
      {
        to: [
          {
            email: userEmail
          }
        ],
        subject: 'the template subject'
      }
    ],
    from: {
      email: Meteor.settings.sendgrid.sender_email
    },
    content: [
      {
        type: "text/html",
        value: "your body content here"
      }
    ],
    template_id: 'c040acdc-f938-422a-bf67-044f85f5aa03'
  }
};

result = HTTP.post(endpoint, options);
Другие вопросы по тегам