【问题标题】:Send an email on Sails.JS using Mailgun?使用 Mailgun 在 Sails.JS 上发送电子邮件?
【发布时间】:2018-07-30 21:01:41
【问题描述】:

我正在尝试在 Sails.JS 上发送电子邮件,但我不知道该怎么做。我看了很多教程,但没有一个教程帮助我发送电子邮件。我可以使用curl 通过控制台发送电子邮件。

我尝试配置 Mailgun,但我没有域。我正在尝试免费做,而且我对 Mailgun 和 Sails.JS 也很陌生。我的目的是在 Sails.JS 上发送电子邮件,但我不知道如何。

【问题讨论】:

  • 您实际上不需要 mailgun 上的域。您还可以使用邮件本身的沙箱域。但是你只能向白名单中的人发送邮件。

标签: sails.js mailgun


【解决方案1】:

按照以下步骤使用 mailgun 从sailsjs 发送电子邮件

安装mailgun模块

npm install mailgun-js --save

在 config/custom.js 文件中创建自定义变量

mailgunDomain: 'yourmailgundomain',

mailgunSecret: 'yourmailgunkey',

mailgunFrom:'yourmailgunfrommail',

创建一个助手

sails 生成助手发送单个电子邮件

var mailgun = require('mailgun-js')({apiKey: sails.config.custom.mailgunSecret, domain: sails.config.custom.mailgunDomain});
module.exports = {


friendlyName: 'Send single email',


description: '',


inputs: {
options:{
  type:'json'
 }
},


exits: {

},


fn: async function (inputs, exits) {

mailgun.messages().send(inputs.options, function (error, body) {
  if(error){
    return exits.error(error)
  }

  // All done.
return exits.success(body);


});

}


};

从任何控制器调用你的助手

await sails.helpers.mail.sendSingleEmail({
    to:'destination@email.com',
    from:sails.config.custom.mailgunFrom,
    subject:'Subject',
    text:'Your message'
  })

【讨论】:

  • 你好,我做了你所说的一切,当我运行并想要发送电子邮件时收到此错误:错误:错误:沙盒子域仅用于测试目的。请添加您自己的域或将地址添加到帐户设置中的授权收件人。我该怎么办?
【解决方案2】:

要使用 Mailgun,您需要注册一个帐户。 (虽然此在较高使用级别的付费服务,但您应该能够在开发中尽可能多地使用 Mailgun,而无需提供任何信用卡信息。)

创建帐户后,您需要将 Mailgun 域和 API 密码添加到自定义配置中。 (在开发中,这将在config/custom.js 中,或者在您添加到config/ 文件夹的local.js 文件中。对于您的暂存或生产部署,您需要使用系统环境变量来设置这些变量——也就是Heroku 中的“配置变量”。)

如果您已经拥有应用程序的域,则可以按照 Mailgun 的说明配置发送域。

否则,要从该应用发送电子邮件,您可以使用 Mailgun 帐户附带的沙盒域和测试 API 密码。请务必先为您的沙箱域配置授权的recipents,否则尝试发送电子邮件的端点会出错。

~~下载新应用时从 Sails.js 常见问题页面复制

【讨论】:

  • 我在配置文件中配置了mailgun creds并将verifyEmail更改为true但没有发送邮件,我该如何解决这个问题
猜你喜欢
  • 2017-10-12
  • 1970-01-01
  • 2016-01-24
  • 2014-04-14
  • 2015-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-18
相关资源
最近更新 更多