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]