发送文件 nodemailer 和 chatbot

send documents nodemailer and chatbot

我想发送通过聊天机器人收到的文档,但是发送时文档已损坏,无法打开

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);
            }
        });
    }
})

我使用了聊天机器人在检测到文件时生成的错误值

这就是解决方案

var mailOptions = {
        from: '<>',                                   
        to: '<>',                                 
        subject: '<>',                                                 
        text: 'Documento enviado',                                                                                               
        attachments: [
            {
                filename: 'Documento'+'.'+extension,
                contentType: attachmentData.mimetype,
                encoding: 'base64',
                content: base64Data 
            }
        ]
    };