Node.js 使用Lambda函数、NodeJS、Mailgun和Postman中的测试参数发送电子邮件
我正在学习所有这些。目标是使用变量发送电子邮件,以下是我在test.js中的代码:Node.js 使用Lambda函数、NodeJS、Mailgun和Postman中的测试参数发送电子邮件,node.js,aws-lambda,postman,mailgun,netlify,Node.js,Aws Lambda,Postman,Mailgun,Netlify,我正在学习所有这些。目标是使用变量发送电子邮件,以下是我在test.js中的代码: const mailgunSdk=require('mailgun-js'); const apiKey='MAILGUN_API_KEY'; const domain='MAILGUN_domain'; const mailgun=mailgunSdk({ 阿皮基, 领域 }); exports.handler=async(事件、上下文、回调)=>{ //console.log(event.body) //co
const mailgunSdk=require('mailgun-js');
const apiKey='MAILGUN_API_KEY';
const domain='MAILGUN_domain';
const mailgun=mailgunSdk({
阿皮基,
领域
});
exports.handler=async(事件、上下文、回调)=>{
//console.log(event.body)
//const data=JSON.parse(event.body)
让我们回应
试一试{
/*向收件人发送电子邮件*/
response=wait mailgun.messages().send({
来自:“雷金纳德·弗罗明顿”,
致:'bobloblaw@gmail.com',
主题:“你好”,
text:event.messageText
})
}捕获(e){
//console.log('Err',e)
返回{
状态代码:e.statusCode | | 500,
//正文:JSON.parse({
//错误:e.message
//})
}
}
返回{
状态代码:200,
正文:JSON.stringify({
结果:response.message
})
}
}
使用Postman,如果我有文本:
作为字符串,例如文本:“谢谢你的电子邮件”
,如果我在没有任何参数的情况下运行函数,我实际上可以在收件箱中收到一条消息。但是,如果我想使用变量,我不知道如何将它们传递到函数中。我尝试了text:event.messageText
,text:response.messageText
,text:mailgun.messageText
,以及我可以想象的各种可能的变量组合
我能找到的大多数文档都已经过时,或者没有解决这个问题。我也不知道如何用谷歌搜索这个问题,因为我对这一切都是新手
谢谢,
-安德鲁
试图将参数传递到屏幕截图中的Lambda函数,您正在邮递员标题选项卡中设置变量。我认为您应该使用body选项卡,然后在lambda函数代码中取消注释关于
event.body
的行。如果取消注释//const data=JSON.parse(event.body)
,我会得到一个函数调用失败:语法错误:JSON输入意外结束
错误。如果我尝试使用body.messageText
变量,我会得到一个函数调用失败:SyntaxError:JSON中位置1处的意外标记o
error。嗯,也许可以检查一下内容类型头是postman headers选项卡中的application/JSON,还是body选项卡中的有效负载是作为JSON发送的。否则,取消对first console.log的注释,可能会在lambda日志中找到线索。
const mailgunSdk = require('mailgun-js');
const apiKey = 'MAILGUN_API_KEY';
const domain = 'MAILGUN_DOMAIN';
const mailgun = mailgunSdk({
apiKey,
domain
});
exports.handler = async(event, context, callback) => {
//console.log(event.body)
//const data = JSON.parse(event.body)
let response
try {
/* Send email to recicipent */
response = await mailgun.messages().send({
from: 'Reginald Fromington <mg@fromaddress.com>',
to: 'bobloblaw@gmail.com',
subject: 'Hello',
text: event.messageText
})
} catch (e) {
//console.log('Err', e)
return {
statusCode: e.statusCode || 500,
//body: JSON.parse({
// error: e.message
//})
}
}
return {
statusCode: 200,
body: JSON.stringify({
result: response.message
})
}
}