Javascript 发送文档nodeEmailer和chatbot
我想发送通过聊天机器人接收的文档,但发送时,文档已损坏,无法打开Javascript 发送文档nodeEmailer和chatbot,javascript,node.js,chatbot,nodemailer,Javascript,Node.js,Chatbot,Nodemailer,我想发送通过聊天机器人接收的文档,但发送时,文档已损坏,无法打开 client.on('message', async message => { if(message.hasMedia) { let attachmentData = await message.downloadMedia(); var extension = ""; if (attachmentData.mimetype == "ima
client.on('message', async message => {
if(message.hasMedia) {
let attachmentData = await message.downloadMedia();
var extension = "";
if (attachmentData.mimetype == "image/jpeg")
extension = "jpg";
else if (attachmentData.mimetype == "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
extension = "xlsx";
if (extension == "")
return;
var base64Data = attachmentData.data.replace(/^data:image\/png;base64,/, "");
var transporter = nodemailer.createTransport({
service: 'gmail',
auth: {
user: '<>',
pass: '<>'
}
});
var mailOptions = {
from: '<>',
to: '<>',
subject: 'Chatbot',
text: 'Documento enviado:',
attachments: [
{
filename: 'document'+'.'+extension,
contentType: base64Data
}
]
};
transporter.sendMail(mailOptions, function(error, info){
if (error) {
console.log(error);
} else {
console.log('Email enviado: ' + info.response);
}
});
}
})
client.on('message',异步消息=>{
if(message.hasMedia){
让attachmentData=wait message.downloadMedia();
var扩展=”;
如果(attachmentData.mimetype==“图像/jpeg”)
extension=“jpg”;
else if(attachmentData.mimetype==“application/vnd.openxmlformats of icedocument.spreadsheetml.sheet”)
extension=“xlsx”;
如果(扩展名==“”)
返回;
var base64Data=attachmentData.data.replace(/^data:image\/png;base64,/,“”);
var transporter=nodeEmailer.createTransport({
服务:“gmail”,
认证:{
用户:“”,
通行证:“”
}
});
var mailpoptions={
从:“”,
至:'',
主题:“聊天机器人”,
文本:“Documento enviado:”,
附件:[
{
文件名:“文档”+“.+扩展名,
contentType:base64Data
}
]
};
transporter.sendMail(邮件选项,函数(错误,信息){
如果(错误){
console.log(错误);
}否则{
console.log('Email enviado:'+info.response);
}
});
}
})
我使用了聊天机器人检测到文件时生成的错误值这就是解决方案
var mailOptions = {
from: '<>',
to: '<>',
subject: '<>',
text: 'Documento enviado',
attachments: [
{
filename: 'Documento'+'.'+extension,
contentType: attachmentData.mimetype,
encoding: 'base64',
content: base64Data
}
]
};
var mailpoptions={
从:“”,
至:'',
主题:'',
文本:“Documento enviado”,
附件:[
{
文件名:“Documento”+“.+扩展名,
contentType:attachmentData.mimetype,
编码:“base64”,
内容:base64Data
}
]
};
您应该创建NodeEmailer传输全局,而不是针对任何消息事件