【问题标题】:Mimekit: MailboxAddress missing for signed email attachmentMimekit:签名的电子邮件附件缺少邮箱地址
【发布时间】:2020-11-18 16:24:44
【问题描述】:

问题 - 无法从附加的签名电子邮件中检索电子邮件地址

((MimeKit.MessagePart)item).Message.To

这里是代码,保存的附件没有邮箱地址;但只是友好的名字-

                    if (fileattachment.Name == "smime.p7m")
                    {
                        // Load & read 'smime.p7m' 
                        fileattachment.Load();

                        using (MemoryStream memoryStream = new MemoryStream(fileattachment.Content))
                        {
                            MimeMessage mimeMessage = MimeMessage.Load(ParserOptions.Default, memoryStream);

                            foreach (var bodyPart in mimeMessage.BodyParts)
                            {
                                //HTML
                                if (!bodyPart.IsAttachment)
                                    continue;

                                if (bodyPart is MessagePart)
                                {
                                    //Subject is file name
                                    var fileName = ((MimeKit.MessagePart)bodyPart).Message.Subject + ".eml";
                                    var rfc822 = (MessagePart)bodyPart;

                                    if (string.IsNullOrEmpty(fileName))
                                        fileName = "attached-message.eml";

                                    using (var stream = File.Create(fileName))
                                        rfc822.Message.WriteTo(stream);
                                }
                                else
                                {
                                    var part = (MimePart)bodyPart;
                                    var fileName = part.FileName;

                                    using (var stream = File.Create(fileName))
                                        part.Content.DecodeTo(stream);
                                }
                            }


                        } //MemoryStream

                    }

提前致谢

【问题讨论】:

  • 我没有在您的代码中看到您试图获取To 地址的位置?另外,原始标题是什么样的?
  • 从 VS QuickWatch,To 属性值具有 {"LastName, FirstName (...)"} 其中地址属性具有相同的值,名称属性具有“”
  • 这不是我问的...查看原始消息 - 如果需要,请将其保存到文件中。

标签: c# mimekit


【解决方案1】:

如果您的MessageIMessageSummary 类型,您可以通过这种方式获取收件人

string recipient = Message.Envelope.To.ToString();

【讨论】:

  • 无法将消息转换为 IMessageSummary。我们正在从字节流中创建 MimeMessage。这是一个签名电子邮件的附件。 TopEmail --> 附件(签名电子邮件)。我们正在尝试检索电子邮件属性(To、Sender、ReplyTo),但实际电子邮件地址缺失,而友好名称可用。请分享任何示例链接...
猜你喜欢
  • 1970-01-01
  • 2012-01-03
  • 2012-09-18
  • 2019-02-09
  • 1970-01-01
  • 2011-05-25
  • 2018-09-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多