butter7372 发表于 2015-9-13 07:15:32

C#编程实现 Outlook Express 连接email和数据库

使用 OEAPI 可以,对Outlook Express进行编辑,并且可以添加事件

OEAPI

首先必须添加注册表选项


Registry
// To load this DLL into OE/WM, it must be added to OEAPI's key in the registry
      // and OEAPI's launcher.exe (or your own EXE launcher) must be running from startup
      
      public static void RegisterFunction(Type t)
      {
            try {
                // Attempt to open the key
                RegistryKey key = Registry.CurrentUser.OpenSubKey("Software\\Nektra\\OEAPI\\Plugins", true);
                // If the return value is null, the key doesn't exist
                if (key == null) {
                  // The key doesn't exist; create it / open it
                  key = Registry.CurrentUser.CreateSubKey("Software\\Nektra\\OEAPI\\Plugins");
                }

                //SetValue (string name, Object value)
                //name can be set any string,but if has many name OE will initialize many name setting,so best set "Plugin".
                //value : namespace.classname.
                key.SetValue("NewsOEAgentPlugin", (string) "news.oe.NewsOEAgent");
            }catch(Exception ex) {
                Console.WriteLine(ex.Message);
                Console.WriteLine(ex.StackTrace);
            }
            
      }

      
      public static void UnregisterFunction(Type t)
      {
            try {
                // Attempt to open the key
                RegistryKey key = Registry.CurrentUser.OpenSubKey("Software\\Nektra\\OEAPI\\Plugins");

                key.DeleteValue("NewsOEAgentPlugin"); //if 'true' is added as a second parameter, eventual exceptions will be thrown
            }catch(Exception ex) {
                Console.WriteLine(ex.Message);
                Console.WriteLine(ex.StackTrace);
            }
      }
然后打开Outlook Express,这时候设置工程属性

OutputType = "Library"
RegisterForComInterop = "true"
StartProgram = "C:"Program Files"Outlook Express"msimn.exe"
StartAction = "Project"
RegisteredComClassic = "true"


1、 收到邮件并且把附件添加都数据库中

   

folderManager = new OEFolderManager();
                inboxFolder = folderManager.GetInboxFolder();
                inboxFolder.OnNewMessage += new IOEFolderEvents_OnNewMessageEventHandler(OnNewMessage);
对邮件的操作都可以放在OnNewMessage里面,包括添加到db,或生成文件等操作。

2、监视文件夹,并发送email
    监视某个文件夹,如果有文件添加到这个文件夹就发送email

可通过 oeApi.OnNewMsgWnd += new IOEAPIObjEvents_OnNewMsgWndEventHandler(OnNewMsgWnd);
oeApi.ComposeMessage();

这时候激活OnNewMsgWnd 事件,就可以对邮件地址等等进行付值等。

3、文件监视简单


newsFileWatcher = new FileSystemWatcher(filePath,filter);
            newsFileWatcher.IncludeSubdirectories = true;
            newsFileWatcher.Renamed += new RenamedEventHandler(OnFileRenamed);
            newsFileWatcher.EnableRaisingEvents = true;
在OnFileRenamed事件里面添加你自己的逻辑。
页: [1]
查看完整版本: C#编程实现 Outlook Express 连接email和数据库