OpenPop - ошибка выполнения

Я использую OpenPop для извлечения вложений из электронных писем и хранения их на локальном диске.

Я вижу ошибку

в System.RuntimeMethodHandle.InvokeMethod(аргументы Object target, Object[], сигнатура сигнатуры, логический конструктор) в System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(параметры объекта obj, Object[], аргументы Object []) в System.Reflection.RuntimeMethoIn. Вызывать (Object obj, BindingFlags invokeAttr, Binder binder, Object[] параметры, CultureInfo culture) в System.RuntimeType.InvokeMember(Строковое имя, BindingFlags bindingFlags, Binder Binder, Object target, Object[] предоставил Args, ParameterModifier[] модификаторы, CultureInfo culture, String[] namedParams) в Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTATaskScriptingEngine.ExecuteScript()

Я не совсем уверен, как отладить эту проблему.

Код, который я использую, выглядит следующим образом...

#region Namespaces
using System;
using System.Data;
using Microsoft.SqlServer.Dts.Runtime;
using System.IO;
using OpenPop.Mime;
using OpenPop.Mime.Header;
using OpenPop.Pop3;
using OpenPop.Pop3.Exceptions;
using OpenPop.Common.Logging;
using System.Linq;
#endregion
//.......
        var client = new Pop3Client();
        try
        {
            client.Connect("outlook.office365.com", port, true); //UseSSL true or false
            client.Authenticate("user", "password");

            var messageCount = client.GetMessageCount();
            var Messages = new System.Collections.Generic.List<Message>(messageCount);

            for (int i = 0; i < messageCount; i++)
            {
                Messages.Add(client.GetMessage(i + 1));
            }

            foreach (Message msg in Messages)
            {
                foreach (var attachment in msg.FindAllAttachments())
                {
                    string filePath = Path.Combine(@"D:\validations\Attachments", attachment.FileName);
                    if (Path.GetExtension(filePath) == ".xlsx")//Path.GetExtension(filePath) == ".xlsx"   attachment.FileName.Equals("blabla.pdf")
                    {
                        FileStream Stream = new FileStream(filePath, FileMode.Create);
                        BinaryWriter BinaryStream = new BinaryWriter(Stream);
                        BinaryStream.Write(attachment.Body);
                        BinaryStream.Close();
                    }
                }
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine("", ex.Message);
        }
        finally
        {

            if (client.Connected)
                client.Dispose();
        }

1 ответ

Просто поместите это вверху вашего файла:

using System.Collections.Generic;
Другие вопросы по тегам