【发布时间】:2017-10-30 18:16:13
【问题描述】:
我正在尝试使用 Mailgun 的 api 从 firebase 云功能发送电子邮件。我已经尝试在 Cloud Function 中实现相同的 nodejs 教程,但我总是得到“错误:无法处理请求”。请问我做错了什么。
云函数代码如下:
<pre>
<code>
var functions = require('firebase-functions');
var nodemailer = require('nodemailer');
var auth = {
auth: {
api_key: '###################',
domain: 's###############g'
}
}
exports.helloWorld = functions.https.onRequest((request, response) => {
response.send("Hello from Firebase!");
});
var nodemailerMailgun = nodemailer.createTransport(auth);
exports.sendEmail = functions.https.onRequest((request, response) =>{
//app.get('/', function(req, res) {
test();
});
function test(){
const mailOptions = {
//Specify email data
from: "info@xyz.com",
//The email to contact
to: "xyz@yahoo.com",
//Subject and text data
subject: 'Hello from Mailgun',
text: 'Hello, This is not a plain-text email, I wanted to test some spicy Mailgun sauce in NodeJS! <a href="http://0.0.0.0:3030/validate?' + req.params.mail + '">Click here to add your email address to a mailing list</a>'
};
return smtpTransport.sendMail(mailOptions).then(() => {
console.log("It works");
});
}
</pre>
谢谢你的协助。
【问题讨论】:
-
感谢编辑@AL
-
您是 Firebase 的付费订阅者之一吗? Firebase 仅在付费计划中允许非 Google 出站网络请求。
-
@GokulKathirvel。还没有。会不会是这个问题?
-
是的@D_Edet ... firebase 将只允许在付费计划中访问非谷歌服务。可悲的是,您需要升级到任何付费计划...
-
@GokulKathirvel。谢谢指出。
标签: node.js angular firebase mailgun google-cloud-functions