Pop3Client RetrieveMessageObject () включает в себя все, кроме тела в. net ядро ​​приложения - PullRequest
0 голосов
/ 13 января 2020

Я создаю базовое приложение. net, которое обращается к папке входящих сообщений с помощью ActiveUp. Net Pop3Client. Первоначально я начал с создания API, который был бы доступен приложению, но затем решил, что я сделаю его базовым пакетом, который я импортирую в проект с NuGet.

Это прекрасно работает со всем, кроме одной проблемы. Тело электронных писем, кажется, не проходит через приложение при доступе к электронной почте из пакета NuGet. Он отлично работал при тестировании API, но даже при том, что большая часть кода копируется непосредственно поверх него, похоже, что он не получает тело.

Вот функция, которая создает и вызывает pop3client. Я добавил строки записи консоли, чтобы посмотреть, возвращают ли какие-либо из найденных полей тела что-либо, и все они возвращаются пустыми для каждого письма. Он успешно вытягивает все остальные поля, которые я запрашиваю, и поэтому я в замешательстве. Кажется, что это должно быть какой-то проблемой конфигурации. Я что-то упускаю здесь?

        private IEnumerable<Email> GetEmail()
        {
            Pop3Client Client = new Pop3Client();
            try
            {
                Client.ConnectSsl(_ms, _pt, _lg, _ps);
                List<Email> messages = new List<Email>();

                    for (int n = 1; n <= Client.MessageCount; n++)
                    {
                        Message message = Client.RetrieveMessageObject(n);
                        Email messageDetails = new Email();
                        messageDetails.uid = message.MessageId;
                        messageDetails.sentFrom = message.From.Email;
                        messageDetails.subject = message.Subject;
                        messageDetails.body = message.BodyHtml.TextStripped.Trim();
                        if (n > 225)
                        {
                            Console.WriteLine("text: " + message.BodyHtml.Text);
                            Console.WriteLine("text stripped: " + message.BodyHtml.TextStripped);
                            Console.WriteLine("body text: " + message.BodyText.Text);
                            Console.WriteLine("body text stripped: " + message.BodyHtml.TextStripped);
                        }
                        messageDetails.date = message.Date;
                        messages.Add(messageDetails);
                    }
                return messages;
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
            }
            finally
            {
                if (Client.IsConnected)
                {
                    Client.Disconnect();
                }
            }
            return null;
        }
...