相关疑难解决方法(0)

我可以在C#中阅读Outlook(2003/2007)PST文件吗?

是否可以使用C#读取.PST文件?我想将此作为一个独立的应用程序,而不是作为Outlook插件(如果可能的话).

如果已经看到类似于提及MailNavigator的其他 SO 问题 ,但我希望在C#中以编程方式执行此操作.

我查看了Microsoft.Office.Interop.Outlook命名空间,但它似乎只适用于Outlook插件.LibPST似乎能够读取PST文件,但这是在C中(对不起Joel,我毕业前没有学过C).

任何帮助将不胜感激,谢谢!

编辑:

谢谢大家的回复!我接受了Matthew Ruston的回答作为答案,因为它最终导致我找到了我正在寻找的代码.这是我工作的一个简单示例(您需要添加对Microsoft.Office.Interop.Outlook的引用):

using System;
using System.Collections.Generic;
using Microsoft.Office.Interop.Outlook;

namespace PSTReader {
    class Program {
        static void Main () {
            try {
                IEnumerable<MailItem> mailItems = readPst(@"C:\temp\PST\Test.pst", "Test PST");
                foreach (MailItem mailItem in mailItems) {
                    Console.WriteLine(mailItem.SenderName + " - " + mailItem.Subject);
                }
            } catch (System.Exception ex) {
                Console.WriteLine(ex.Message);
            }
            Console.ReadLine();
        }

        private static IEnumerable<MailItem> readPst(string pstFilePath, string pstName) {
            List<MailItem> mailItems …
Run Code Online (Sandbox Code Playgroud)

c# outlook pst outlook-2007 outlook-2003

64
推荐指数
3
解决办法
6万
查看次数

通过outlook从命令行发送电子邮件,而无需单击"发送"

我需要通过命令行发送电子邮件,而无需任何人工交互以实现自动化.

我知道我们可以使用mailto命令,但这会组成电子邮件,主题,正文和所有内容,但除非我点击发送,否则它不会发送它.

我在线阅读我们可以使用blat但我不能使用除outlook之外的任何东西.

这是关闭后我发现链接到SOF帖子.

只是为了您的信息:我正在研究一些telnet命令发送电子邮件还没有成功. telnet用于发送电子邮件的命令

outlook command-line automation

17
推荐指数
2
解决办法
10万
查看次数

阅读没有打开Outlook应用程序的电子邮件

多数民众赞成我使用C#阅读电子邮件:

outLookApp.NewMailEx += new ApplicationEvents_11_NewMailExEventHandler(outLookApp_NewMailEx);
            Outlook.NameSpace olNameSpace = outLookApp.GetNamespace("mapi");

olNameSpace.Logon("xxxx", "xxxxx", false, true);
Outlook.MAPIFolder oInbox  = olNameSpace.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox);
Outlook.Items oItems  = oInbox.Items;
MessageBox.Show("Total : " + oItems.Count); //Total Itemin inbox
 oItems = oItems.Restrict("[Unread] = true");
 MessageBox.Show("Total Unread : " + oItems.Count); //Unread Items
 Outlook.MailItem oMsg;


 Outlook.Attachment mailAttachement;
 for (int i = 0; i < oItems.Count; i++)
 {
     oMsg = (Outlook.MailItem)oItems.GetFirst();

     MessageBox.Show(i.ToString());

    MessageBox.Show(oMsg.SenderName);
    MessageBox.Show(oMsg.Subject);
    MessageBox.Show(oMsg.ReceivedTime.ToString());
    MessageBox.Show(oMsg.Body);
Run Code Online (Sandbox Code Playgroud)

我面临的问题是此应用程序仅在Outlook在计算机上打开时才有效.如果Outlook已关闭,则会抛出异常:

服务器不可用.如果此情况仍然存在,请与管理员联系.

无论如何我可以阅读Outlook打开的电子邮件吗?

c# email outlook

9
推荐指数
1
解决办法
2万
查看次数

如何以编程方式发送电子邮件时避免Outlook的安全警告?

我使用VB.Net 2005通过Outlook发送电子邮件; 这工作正常.
但是,与此同时,我收到以下消息:

程序正在尝试代表您自动发送电子邮件.
你想允许吗?
如果这是意外的,它可能是病毒,你应该选择否.

有什么方法可以避免这种情况吗?

vb.net email outlook

6
推荐指数
2
解决办法
3642
查看次数