IMAP提取的邮箱PDF附件通过Node.js发送后无法打开如何解决
问题原因
附件无法打开、格式识别错误主要是两个核心问题:
- 构造附件时未明确指定MIME类型,导致邮件客户端错误将PDF识别为DOC格式
- 未正确声明附件内容的编码格式,传输过程中PDF的二进制Buffer被错误转码导致文件损坏
解决方案
按以下步骤修改邮件构造逻辑即可:
- 附件配置项中补充
contentType属性,直接复用IMAP返回的application/pdf值即可,强制指定文件类型为PDF - 若你提取的
cntnt是base64编码的字符串,补充encoding: 'base64'属性;若cntnt是原始Buffer类型可忽略该配置 - 确认
fname变量的值确实携带.pdf后缀,避免因后缀缺失导致客户端识别格式错误
修正后的代码示例
var mail = { from: "sender@gmail.com", to: "reciever@gmail.com", subject: "Sending Email using Node.js", text: "That was easy!", attachments: [ { filename: fname, content: cntnt, contentType: 'application/pdf', // 如果cntnt是base64字符串则取消下一行注释 // encoding: 'base64' } ] };
内容的提问来源于stack exchange,提问作者Madhav
相关产品推荐
相关产品推荐

