나는 여기 아주 간단한 것을 놓치고 있다고 생각합니다. nodemailer를 사용하여 양식 데이터를받은 편지함으로 보내는 간단한 하나의 node.js 앱이 있습니다.응용 프로그램을 내받은 편지함으로 양식 데이터를 메일로 보내려면 Firebase에서 올바르게 작동하지 않습니다.
내하는 index.js가 파일 :
var express = require('express');
var app = express();
var bodyParser = require('body-parser');
var nodemailer = require('nodemailer');
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
var transporter = nodemailer.createTransport({
service: 'gmail',
auth: {
user: '[email protected]',
pass: 'mypassword'
}
});
app.use(express.static('public')); //public folder with my html files
app.get('', function (req, res) {
res.sendFile(__dirname + "/");
})
app.post('/', function (req, res) {
response = {
name: req.body.name,
email: req.body.email,
message: req.body.message
};
var mailClient = {
from: '[email protected]',
to: '[email protected]',
subject: `Message from ${response.name}`,
text: 'MyMessage'
};
transporter.sendMail(mailClient, function (error, info) {
if (error) {
console.log(error); //not happening
} else {
res.redirect("/success.html"); //also not happening
}
});
})
var server = app.listen(80, function() {
var host = server.address().address
var port = server.address().port
console.log("App listening at http://%s:%s", host, port)
})
내가 루트 디렉토리에 npm start
를 사용하여 내 로컬 컴퓨터에서이 작업을 실행하면 응용 프로그램은 localhost
에 완벽하게 정상적으로 실행됩니다. Nodemailer가 올바르게 작동합니다. 제출할 때 양식 데이터가 나에게 이메일로 전송되고 내 성공 페이지로 리디렉션됩니다.
그러나 이것을 Firebase에 배포하면 nodemailer 부분이 작동하지 않는 것으로 보입니다. 페이지가 정적 파일로로드되지만 폼을 통해 아무 것도 제출하지 않으면 내 성공 페이지로 리디렉션하고 데이터를 전자 메일로 보내는 대신 페이지가 단순히 새로 고칩니다 (예 : html로 제출 버튼이있는 경우처럼).
Firebase에서 작동하도록 코드에서 변경해야 할 것이 있습니까?
콘솔의 로그에서 무엇을 찾을 수 있습니까? 프로젝트에 대한 지불 계획은 무엇입니까? –
내 웹 사이트의 콘솔에 대해 이야기하고 있다면 오류가 발생하지 않습니다. 나는 무료 지불 계획 (불꽃)에있어, – user7548189
당신의 nodemailer 구성은 어떻습니까? Firebase 콘솔에서 볼 수있는 Firebase 프로젝트 함수 로그에 대해서 말하고 있습니다. –