我有一项任务,我需要创建一个程序,将outlook电子邮件转换为pdf。
这是我的代码
Microsoft.Office.Interop.Outlook.Application app = new Microsoft.Office.Interop.Outlook.Application();
NameSpace outlookNs = app.GetNamespace("MAPI");
MAPIFolder rootFolder = outlookNs.Stores["Blah"].GetRootFolder();
List<MailItem> mailItems = new List<MailItem>();
Folders subFolders = rootFolder.Folders;
foreach (Folder folder in subFolders)
{
if (folder.Name == "Inbox")
{
Items items = folder.Items;
foreach (object item in items)
{
if (item is MailItem)
{
MailItem mailItem = item as MailItem;
string fileName = System.IO.Path.Combine(System.IO.Path.GetTempPath(), "New folder", mailItem.EntryID + mailItem.SenderName.Replace("/", "") + ".msg");
mailItem.SaveAs(fileName, Microsoft.Office.Interop.Outlook.OlSaveAsType.olMSG);
}
}
}
}
代码正在运行,但展望包含数千封电子邮件。 outlook每10分钟提示一条消息,类似于下面的屏幕截图
有没有办法避免收到消息?编程或设置会做什么?
答案 0 :(得分:0)
基本上,它与编程无关,而与Outlook安全设置无关。
对于每个版本的Outlook,您都可以按照this blog上的说明找到此弹出窗口的设置。
答案 1 :(得分:0)
你可以外出设置。
我的展望是2013年。
File->options :
会打开一个窗口
在窗口中选择Trust Center
您可以看到按钮Trust center Settings
窗口更改中的选项。 Select Programmatic access
取消选中单选按钮Never warn me about suspicious activity (not recommended)
通过程序,您可以更改以下注册表设置:
转到“HKEY_CURRENT_USER \ Software \ Policies \ Microsoft \ Office \ 15.0 \ outlook \ security”
以编程方式更改以下设置:
PromptSimpleMAPISend -- 2
PromptSimpleMAPINameResolve -- 2
PromptSimpleMAPIOpenMessage -- 2
默认情况下,安装outlook时,上述值的值为零。我在我的程序中做的是,在发送电子邮件之前以编程方式将它们转换为“2”,并在稍后的时间点将它们变回零。
答案 2 :(得分:0)
有关选项列表,请参阅http://www.outlookcode.com/article.aspx?id=52。
基本上,您可以确保计算机上的防病毒应用程序是最新的,也可以使用Redemption之类的库来保存MSG文件。