C#编程实现 Outlook Express 连接email和数据库
2007-10-18 18:31
429 查看
使用 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
[ComRegisterFunction]
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);
}
}
[ComUnregisterFunctionAttribute]
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事件里面添加你自己的逻辑。
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
[ComRegisterFunction]
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);
}
}
[ComUnregisterFunctionAttribute]
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事件里面添加你自己的逻辑。
相关文章推荐
- C#编程-连接数据库的方法
- C#实现杀掉MSSQL中数据库当前连接的所有进程(进行数据还原的时候需要用到)
- 用VB编写ActiveX DLL实现ASP编程(主要是数据库连接)
- C#编程中的数据库的连接字符串
- C#实现SQL 2005数据库远程连接代码
- c#实现简单工厂—数据库连接
- c# 数据库连接之实现
- C#实现连接SQL Server2012数据库并执行SQL语句的方法
- C#GUI编程学习之ListBox控件篇1--连接数据库并传递2个控件之间的Item
- C#GUI编程学习之ComboBox控件篇1--连接数据库并传递数据到文本框
- 【C#】C#连接数据库实现登录系统的功能
- C#编程实现连接SQL SERVER数据库实例详解
- C#编程-连接数据库的方法
- C#学习- 通过基于接口的编程来实现数据库的切换
- 使用VS2010连接SQL Server 2008数据库混合编程以实现对数据库的操作
- C#_连接数据库实现 登录注册界面
- C#编程实现连接ACCESS数据库实例详解
- Windows 8 Metro用C#连接SQLite及创建数据库,数据表的增删改查的实现
- C#编程连接数据库,通过更改配置文件切换数据库功能。
- C#窗体-数据库连接及登录功能的实现