首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将nodemailer与claudia api-builder一起使用

如何将nodemailer与claudia api-builder一起使用
EN

Stack Overflow用户
提问于 2020-02-08 06:45:30
回答 1查看 40关注 0票数 0

我正在尝试创建一个简单的REST API,我可以向其发送电子邮件,然后给自己发送电子邮件。我正在使用nodemailer,并且已经将它设置为一个express应用程序,它工作得很好,确认我的身份验证等都很好。我想在线托管它,所以我使用claudia.js创建了一个lambda和API网关设置,但这似乎破坏了它。

《守则》

代码语言:javascript
复制
const nodemailer = require('nodemailer');
const secrets = require('./secret');
const apiBuilder = require('claudia-api-builder');

api = new apiBuilder();
module.exports = api;

var mailOptions;
var logMsg = "none";

api.post('/email', async (req, res) => {
  mailOptions = {
    from: secrets.email,
    to: secrets.email,
    subject: 'Email From: ' + req.body.senderEmail + ' | ' + req.body.subject,
    text: req.body.content,
  };
  sendMail(mailOptions);
  return logMsg;
})

const transporter = nodemailer.createTransport({
  service: 'gmail',
  auth: {
    user: secrets.email,
    pass: secrets.pwd
  }
});

function sendMail(mailOptions) {
  logMsg="Starting Send Function";
  transporter.sendMail(mailOptions, function (error, info) {
    if (error) {
      logMsg = error;
      return error;
    } else {
      logMsg = "Send Complete";
      return true;
    }
  });
  logMsg="Function finished";
}

当我通过postman进行调试时,通过张贴一个原始的JSON

代码语言:javascript
复制
{
    "senderEmail": "test2",
    "subject": "test",
    "content":"test"
}

我收到“函数完成”,我真的看不出这是怎么可能的,因为if或否则应该在transporter.sendMail(...下触发,从函数返回。我也没有收到电子邮件,这是我的最终目标

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-24 12:22:59

我也有同样的问题,直到我开始退还传送器

代码语言:javascript
复制
return transporter.sendMail(mailOptions)
  .then(info => {
    console.log('email sent: ', info)
    return {'status': 'OK'}
  })
  .catch(err => {
    console.log('email error: ', err)
    return {'status': 'ERROR'}
  })
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60122100

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档