我正在使用feathersjs构建一个API,我需要发送附带附件的电子邮件。
电子邮件似乎已发送但我什么都没收到。
在我的mail.service.js
中const nodemailer = require('nodemailer');
const transporter = nodemailer.createTransport({
host: 'smtp.office365.com',
port: 587,
secure: false, // secure:true for port 465, secure:false for port 587
auth: {
user: 'gil.felot@myaccount.com',
pass: 'MyPassWord'
}
});
// Check the connection to the service.
transporter.verify(function(error, success) {
if (error) {
console.log(error);
} else {
console.log('Server is ready to take our messages');
}
});
然后在我的钩子里
hook => {
const file = hook.params.file;
const email = {
from: 'gil.felot@myaccount.com', // sender address
to: 'mygmailaccount@gmail.com', // list of receivers
subject: 'Test Nodemailer', // Subject line
// text: req.body.text, // plaintext body
html: '<b>Hello world </b>', // html body
attachments: [
{
filename: file.originalname,
contents: new Buffer(file.buffer, 'base64'),
encoding: 'base64'
}
]
};
return hook.app.service('mail').create(email)
.then(function (result) {
console.log('Sent email', result);
}).catch(err => {
console.log(err);
});
}
然后我得到了
服务器已准备好接收我们的消息
已发送电子邮件
Object {from:“gil.felot@myaccount.com”,to:“mygmailaccount@gmail.com”,subject:“Test Nodemailer”,html:“ Hello world ”}
我不知道如何检查问题的来源。
答案 0 :(得分:1)
我能够通过google smtp发送邮件时创建邮件时丢失了from部分,但是我自己的smtp无法通过上述配置
正在与Google合作
var mailOptions = { to: email, subject: 'Forgot Password', html: mailData };
也与我的smtp合作:
var mailOptions = { from: 'serverName.com', to: email, subject: 'Forgot Password', html: mailData };
在定义nodemailer
配置的同时考虑添加名称
let transporter = nodemailer.createTransport({
name: 'example.com' // <= Add this
host: 'smtp.example.email',
port: 587,
答案 1 :(得分:-1)
好的我明白了!
当我致电transporter.sendMail()
mail.class.js
内添加hook.app.service('mail').create(email)
来触发此操作
工作和邮件中的0字节的附件文件,但我的变量中的大小合适。