我正在使用nodemailer模块在node.js中发送电子邮件。我有一系列对象,我正在尝试将其转换为CSV文件并将其附加到电子邮件中。我能够成功发送电子邮件,但CSV附件无法正确填充(显示为空白)。我的代码看起来类似于以下内容
var nodemailer = require('nodemailer');
// create reusable transporter object using SMTP transport
var transporter = nodemailer.createTransport({
service: 'Gmail',
auth: {
user: '[email protected]',
pass: 'userpass'
}
});
var data = [{age:24,name:"bob"},{age:35,name:"andy"},...];
var mailOptions = {
from: '[email protected]', // sender address
to: '[email protected]', //receiver
subject: 'Hello', // Subject line
text: 'Hello world', // plaintext body
html: '<b>Hello world</b>', // html body
attachments: [{
filename: 'test.csv',
content: data
}],
};
// send mail with defined transport object
transporter.sendMail(mailOptions, function(error, info){
if(error){
return console.log(error);
}
console.log('Message sent: ' + info.response);
});
我猜它不能读取对象数组,只适用于用逗号分隔的字符串?
您应该将附加content
属性指定为字符串。
NodeMailer无法转换格式本身。因此,您需要在发送数据之前将数据转换为CSV。使用像to-csv这样的模块。