C# 使用pop3阅读C版outlook电子邮件(韩语)

C# 使用pop3阅读C版outlook电子邮件(韩语),c#,email,pop3,openpop,C#,Email,Pop3,Openpop,我想使用pop3阅读C中的outlook电子邮件。 当我从邮箱收到邮件时,会出现编码异常,因为我读的是韩文邮件。 如何阅读韩文电子邮件? 我可以设置我要阅读的邮箱吗? 请帮帮我 class Program { static Pop3Client client = new Pop3Client(); static StringBuilder builder = new StringBuilder(); static void Mai

我想使用pop3阅读C中的outlook电子邮件。 当我从邮箱收到邮件时,会出现编码异常,因为我读的是韩文邮件。 如何阅读韩文电子邮件? 我可以设置我要阅读的邮箱吗? 请帮帮我

    class Program
    {
        static Pop3Client client = new Pop3Client();
        static StringBuilder builder = new StringBuilder(); 
        static void Main(string[] args)
        {

            client.Connect("outlook.office365.com", 995, true);
            client.Authenticate("blahblahblah", "blahblahblah");//로그인

            Console.WriteLine("Checking Inbox");
            DataTable table = new DataTable();
            var count = client.GetMessageCount();//몇개의 메세지가 있는지
            Console.WriteLine(count);

            for (int i=count;i>=1;i--)
            {
                var message = client.GetMessage(i);
                var fromAddress = message.Headers.From.Address;
                var subject = message.Headers.Subject;
                var messageBody = String.Empty;

                var plainText = message.FindFirstPlainTextVersion();

                if (plainText == null)
                {
                    var html = message.FindFirstHtmlVersion();
                    messageBody = html.GetBodyAsText();
                }
                else
                {
                    messageBody = plainText.GetBodyAsText();
                }
                table.Rows.Add(i,subject, fromAddress, messageBody);
            }

        }
    }

大家好,欢迎来到Stack Overflow。 据我所知,您正在使用OpenPop.NET库

OpenPop.NET使用EncodingFinder类查找正确的编码。默认情况下,它只支持utf8和ascii,至少在github上读取库代码。 根据本页: 您可以将您的编码添加到EncodingFinder。 在您的情况下,您所要做的就是:

static void Main(string[] args)
{
   EncodingFinder.AddMapping("ks_c_5601-1987", Encoding.GetEncoding(949));
   // rest of the application
请注意,这只适用于.NET Framework,而不适用于.NET Core,因为后者支持的编码数量非常有限

我没有测试这个解决方案的韩国pop3,但我希望它能起作用。祝你好运

搜索后编辑 在.NET Core中使用韩语编码也是可能的,只是有点棘手:

static void Main(string[] args)
{
   Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
   EncodingFinder.AddMapping("ks_c_5601-1987", Encoding.GetEncoding(949));
   // rest of application

如果您正在使用.NET Core,请尝试一下。

请同时发布异常消息。使帮助更容易:您必须准确地指定它在哪里中断,您会遇到什么错误…@AngryHacker它在var message=client.GetMessagei处中断@Jan System.ArgumentException:ks_c_5601-1987'不是受支持的编码名称。有关定义自定义编码的信息,请参阅encoding.RegisterProvider方法的文档。”这是我的例外消息。谢谢。工作!!!!非常感谢:嗯,我可以再问你一个问题吗?我想在特定的收件箱中阅读邮件,而不是在收件箱中!是否可以在pop3中设置邮箱?据我所知,我可能错了。我想你需要去IMAP。嗨,我可以问一下IMAP吗?如果我是你,我会提出不同的问题。由于此问题是关于pop3的,并且已回答,因此应将其视为已结束。此外,评论不是询问和解释事情的最佳方式,等等。