Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Mimekit:签名电子邮件附件缺少邮箱地址_C#_Mimekit - Fatal编程技术网

C# Mimekit:签名电子邮件附件缺少邮箱地址

C# Mimekit:签名电子邮件附件缺少邮箱地址,c#,mimekit,C#,Mimekit,问题-无法从附加的签名电子邮件中检索电子邮件地址 ((MimeKit.MessagePart)项).Message.To 这是代码,保存的附件没有电子邮件地址;但只有友好的名字- if (fileattachment.Name == "smime.p7m") { // Load & read 'smime.p7m'

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

((MimeKit.MessagePart)项).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

                    }

提前感谢

如果您的
邮件
类型为
IMessageSummary
您可以通过这种方式获取收件人

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

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

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

无法将邮件强制转换为IMessageSummary。我们正在从字节流创建MimeMessage。这是一封签名电子邮件的附件。TopEmail-->附件(SignedEmail)。我们正在尝试检索电子邮件属性(收件人、发件人、回复收件人),但实际电子邮件地址丢失,而友好名称可用。请共享任何示例链接…无法将邮件强制转换为IMessageSummary。我们正在从字节流创建MimeMessage。这是一封签名电子邮件的附件。TopEmail-->附件(SignedEmail)。我们正在尝试检索电子邮件属性(收件人、发件人、回复收件人),但实际电子邮件地址丢失,而友好名称可用。请分享任何示例链接…我在您的代码中没有看到您试图获取
地址的地方?另外,原始头是什么样子的?从VS QuickWatch到属性值有{“LastName,FirstName(…)”},其中Address属性有相同的值,Name属性有“”,这不是我要问的。。。查看原始消息-如果有必要,请将其保存到文件中。我看不到您在代码中试图获取
地址的位置?另外,原始头是什么样子的?从VS QuickWatch到属性值有{“LastName,FirstName(…)”},其中Address属性有相同的值,Name属性有“”,这不是我要问的。。。查看原始消息-如果必须,请将其保存到文件中。