Twilio-通过功能发送电子邮件

时间:2019-03-21 16:44:31

标签: twilio twilio-functions

是否可以通过Twilio功能发送电子邮件?我了解我们可以使用sendgrid。我正在寻找一个更简单的解决方案。

2 个答案:

答案 0 :(得分:4)

Twilio的传播者在这里。

到目前为止,您可以在SendGrid中使用Twilio Function。下面的代码为我完成了工作,我只是通过一个函数发送了电子邮件

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邮件依赖项并在the function configuration中提供sendgrid令牌。

Twilio function configuration

如果您想使用此功能为例如消息,您必须确保返回的有效TwiML。 :)创建新函数时,您将获得有关如何执行此操作的示例。

希望有帮助。 :)

答案 1 :(得分:0)

以上答案不再有效。这是catch钩提供的错误消息:

error! { Error: socket hang up
    at TLSSocket.onHangUp (_tls_wrap.js:1137:19)
    at Object.onceWrapper (events.js:313:30)
    at emitNone (events.js:111:20)
    at TLSSocket.emit (events.js:208:7)
    at endReadableNT (_stream_readable.js:1064:12)
    at _combinedTickCallback (internal/process/next_tick.js:138:11)
    at process._tickDomainCallback (internal/process/next_tick.js:218:9)
  code: 'ECONNRESET',
  path: null,
  host: 'api.sendgrid.com',
  port: 443,
  localAddress: undefined }

  error! { Error: socket hang up
    at createHangUpError (_http_client.js:299:15)
    at TLSSocket.socketOnEnd (_http_client.js:391:23)
    at emitNone (events.js:111:20)
    at TLSSocket.emit (events.js:208:7)
    at endReadableNT (_stream_readable.js:1064:12)
    at _combinedTickCallback (internal/process/next_tick.js:138:11)
    at process._tickDomainCallback (internal/process/next_tick.js:218:9) code: 'ECONNRESET' }