Запустить шаблон электронной почты 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);