MimeMessage 获取附件名称

Posted

技术标签:

【中文标题】MimeMessage 获取附件名称【英文标题】:MimeMessage Get Attachment Name 【发布时间】:2020-02-20 06:51:54 【问题描述】:

我可以知道如何在 MimeMessage 中获取附件的名称吗?

我找不到attachmentname 属性。

下面是我的代码 sn-p。

MimeMessage eml = MimeMessage.Load(savedEmlFullFilePath);
EmailMessage mail = new EmailMessage(service);

foreach (var attachment in eml.Attachments)

    using (var stream = File.Create(AppConfig.EmailSaveFilePath + "attachment_from_email"))
    
        if (attachment is MessagePart)
        
            var part = (MessagePart)attachment;

            part.Message.WriteTo(stream);

            mail.Attachments.AddFileAttachment(AppConfig.EmailSaveFilePath + "attachment_from_email");
        
        else
        
            var part = (MimePart)attachment;

            part.Content.DecodeTo(stream);

            mail.Attachments.AddFileAttachment(AppConfig.EmailSaveFilePath + "attachment_from_email");
        
    

【问题讨论】:

【参考方案1】:

MimePart 有一个您可以使用的 FileName 属性。

MessageParts 通常没有文件名,但如果有,你应该可以使用这样的逻辑来获取它:

string fileName = msgPart.ContentDisposition?.FileName ?? msgPart.ContentType.Name;

【讨论】:

以上是关于MimeMessage 获取附件名称的主要内容,如果未能解决你的问题,请参考以下文章

从电子邮件中获取附件

JavaMail入门第二篇 创建邮件

JavaMail入门第二篇 创建邮件

将 MimeMessage 对象消息转发为 EML 文件中附件的常规转发格式

javamail 阅读邮件时,有啥理由使用 Message 而不是 MimeMessage 等?

模拟 MIMEMessage 的正确方法?