Manifest V3下如何获取Thunderbird邮件附件?代码返回空数组求助
解决Thunderbird扩展获取邮件附件返回空数组的问题
1. 修复变量未定义的错误
你的代码中调用getAttachmentFile时使用了未声明的messageId变量,这会直接导致报错(虽然你的catch块可能没捕获到这个变量错误),需要替换为message.id(与调用listAttachments时使用的ID保持一致):
let file = await browser.messages.getAttachmentFile(message.id, att.partName);
2. 检查扩展权限
确保你的manifest.json中已声明messagesRead权限,这是访问邮件附件的必要权限,同时messageDisplay权限也不能少:
{ "permissions": [ "messagesRead", "messageDisplay" ] }
3. 确认测试邮件包含附件
空数组可能是因为当前显示的邮件本身没有附件,先确认你用来测试的邮件确实存在可识别的附件(比如非内嵌图片、真实的文件附件)。
4. 验证邮件ID的正确性
你代码中同时打印了message.messageId和message.id,可以对比两者的值:Thunderbird的messages.listAttachments需要的是邮件的内部ID(即message.id),但如果存在字段混淆的情况,可以尝试替换为message.messageId测试是否能获取到附件。
内容的提问来源于stack exchange,提问作者Jan Bludau
相关产品推荐
相关产品推荐

