有没有办法从 Twilio 功能发送电子邮件?我知道我们可以使用 sendgrid。我正在寻找一个更简单的解决方案。
问问题
1103 次
2 回答
5
Twilio 布道者在这里。
到目前为止,您可以在Twilio Function中使用SendGrid。下面的代码为我完成了这项工作,我只是通过一个函数发送了一封电子邮件
exports.handler = function(context, event, callback) {
const sgMail = require('@sendgrid/mail');
sgMail.setApiKey(process.env.SENDGRID_API_KEY);
const msg = {
to: 'sjudis@twilio.com',
from: 'test@example.com',
subject: 'Sending with SendGrid is Fun',
text: 'and easy to do anywhere, even with Node.js',
html: '<strong>and easy to do anywhere, even with Node.js</strong>',
};
sgMail.send(msg)
.then(() => {
callback(null, 'Email sent...');
})
.catch((e) => {
console.log(e);
})
};
上述电子邮件很可能以垃圾邮件告终,因为test@example.com
它不是一个非常值得信赖的电子邮件地址。如果您想从自己的域发送电子邮件,则需要额外的配置。
要在函数内部运行代码,您必须确保安装邮件依赖项并在函数配置sendgrid/mail
中提供 sendgrid 令牌。
如果您想使用此功能为例如消息提供动力,您必须确保您返回有效的TwiML。:) 当您创建一个新函数时,您将获得展示如何执行此操作的示例。
希望有帮助。:)
于 2019-03-21T17:31:42.123 回答
0
另一种方法是使用 SendGrid API
const got = require('got');
exports.handler = function(context, event, callback) {
const requestBody = {
personalizations: [{ to: [{ email: context.TO_EMAIL_ADDRESS }] }],
from: { email: context.FROM_EMAIL_ADDRESS },
subject: `New SMS message from: ${event.From}`,
content: [
{
type: 'text/plain',
value: event.Body
}
]
};
got.post('https://api.sendgrid.com/v3/mail/send', {
headers: {
Authorization: `Bearer ${context.SENDGRID_API_KEY}`,
'Content-Type': 'application/json'
},
body: JSON.stringify(requestBody)
})
.then(response => {
let twiml = new Twilio.twiml.MessagingResponse();
callback(null, twiml);
})
.catch(err => {
callback(err);
});
};
};
于 2021-08-20T12:37:19.950 回答