当我从Outlook发送带有Outlook项(.msg文件为.msg文件)的电子邮件时,方法getFileName()
(用于获取与正文部分关联的文件名)的返回值为null。附件)。我也尝试使用getName()
的{{1}},但仍然将值设为null。
如何处理将Outlook项目(.msg文件)作为附件的情况?
PS :我能够检索其他所有附件(.png,.doc,.pdf等)的文件名,仅使用.msg附件会遇到麻烦。>
任何建议将不胜感激。
谢谢。
答案 0 :(得分:0)
您观察到的内容对从Outlook发送的邮件有效。让我们看看Outlook中包含常规附件的邮件的来源。例如,附件的标题看起来像...
Content-Type: image/png; name="404.png"
Content-Disposition: attachment; filename="404.png"; size=30193; creation-date="Wed, 25 Jul 2018 13:44:01 GMT"; modification-date="Wed, 25 Jul 2018 13:44:01 GMT"
Content-Transfer-Encoding: base64
附件图像的filename
字段已完成,当您尝试检索它时,它将返回404.png
。
现在,让我们看一下带有附件.msg
附件的消息的来源。例如,这看起来就像...
Content-Type: message/rfc822
Content-Disposition: attachment; creation-date="Wed, 25 Jul 2018 13:40:28 GMT"; modification-date="Wed, 25 Jul 2018 13:40:28 GMT"
如您所见,没有为此类型的附件指定filename
,当您尝试检索它时,它将返回null
。
该建议非常明显...处理附件时,请查看Content-Type
,如果这是没有名称的嵌入式消息,则可以随意设置。例如,Gmail会在附件列表中显示“ noname”。