使用Mailkit v2.9.0从电子邮件中获取发件人

问题描述

我如何从Mailkit v2.9.0中的电子邮件对象获取电子邮件地址。

我正在获取消息,将其放入IMessageSummary,循环抛出,并尝试使用Envelope.FromEnvelope.Sender方法。

循环和提取方法:

IList<IMessageSummary> fetched = null;

        do
        {
            try
            {
                int startIndex = messages.Count;

                fetched = client.Inbox.Fetch(startIndex,-1,MessageSummaryItems.Full | MessageSummaryItems.UniqueId,cancel.Token);
                break;
            }
            catch (ImapProtocolException)
            {
                await ReconnectAsync();
            }
            catch (IOException)
            {
                await ReconnectAsync();
            }
        } while (true);

        foreach (var message in fetched)
        {
            try
            {
                if(!(message.Flags.Value.HasFlag(MessageFlags.Seen)))
                {

                    client.Inbox.AddFlags(message.UniqueId,MessageFlags.Seen,false);
                    if (message.TextBody != null)
                    {
                        var mime = (TextPart)client.Inbox.GetBodyPart(message.UniqueId,message.TextBody);
                        text = mime.Text;

                        Console.WriteLine("{0}",message.Envelope.Subject);
                        //Console.WriteLine("{0}",text);
                        Console.WriteLine("a:: " + message.Envelope.From);
                    }
                    else
                    {
                        var mime = (TextPart)client.Inbox.GetBodyPart(message.UniqueId,message.HtmlBody);
                        text = mime.Text;
                        
                        Console.WriteLine("Nachricht eingegangen:");
                        Console.WriteLine("{0}",text);
                        Console.WriteLine("b:: " + message.Envelope.Sender);
                    }

使用

 message.Envelope.Sender

我没有输出。

使用

 message.Envelope.From

我得到以下输出(也许是交易所和电子邮件的邮箱名称):

"Lastname,Firstname (Companyname)" <[email protected]>

原始输出:

S: * 22 FETCH (UID 595 FLAGS (\Seen) INTERNALDATE "29-Oct-2020 09:47:37 +0100" RFC822.SIZE 6852 ENVELOPE ("Thu,29 Oct 2020 09:47:36 +0100" "fsfsfsf" (("Company Mailbox - Information" NIL "info" "company.net")) NIL NIL (("Company Ticketsystem" NIL "ticket" "company.com")) NIL NIL NIL "<[email protected]>") BODY ("text" "plain" ("charset" "iso-8859-1") NIL NIL "quoted-printable" 0 0))

我不想解析 Envelope.From 的输出。也许有人可以帮忙。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)