Я хочу отправлять электронную почту с моего сервера nodejs всякий раз, когда я регистрирую пользователя.Я использую Angular5 в качестве внешнего интерфейса.Он не возвращает никакой ошибки, но не работает.Как будто моя функция вообще не вызывается.Вот что я попробовал (электронная почта в данном примере не реальная):
server.js
app.post('/sendMails', function(req,res) {
console.log("WENT INTO SEND MAILS!!!")
let transporter = nodemailer.createTransport({
service: 'gmail',
secure: false,
port: 25,
auth: {
user: 'someemail@gmail.com',
pass: process.env.MAIL_PASSWORD
},
tls: {
rejectUnauthorized: false
},
});
let HelperOptions = {
from: '"Babababa" <someemail@gmail.com>',
to: 'someemail@gmail.com',
subject: 'Hello world',
text: 'hey dude'
};
transporter.sendMail(HelperOptions, (error, response) => {
if(error) {
return console.log(error);
res.json({error: "API Error"});
}
else{
console.log("The message is sent: " + response.message);
res.json({response: "sent"})
}
})
});
от Angular
UserService.ts (соответствующие части)
constructor(private http: HttpClient) { }
sendMail(user: User){
console.log("sendMail() was called.")
return this.http.post("http://localhost:3000/sendMails", user.email);
}
Это вызывается в моем компоненте регистрации при регистрации
registration.component.ts
public signUp(){
//marks all fields as touched.
this.fs.markFormGroupTouched(this.registerForm);
if(this.registerForm.valid) {
let user: User = this.registerForm.value;
console.log(user)
this.userService.createUser(user);
this.userService.sendMail(user); //<--- only this is relevant for this case.
}
else {
//shows the error messages, for the not valid input fields.
this.formErrors = this.fs.validateForm(this.registerForm,
this.formErrors, false)
}
}
Когда я запускаю этот код, ошибок нет.В окне консоли инспектора / на стороне клиента я вижу сообщение "sendMail () был вызван." , что означает, что он определенно вызывает мой сервис.Тем не менее, я не получаю ни почты, ни каких-либо ошибок