首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >检查已启用的outlook帐户

检查已启用的outlook帐户
EN

Stack Overflow用户
提问于 2016-05-05 14:28:21
回答 1查看 167关注 0票数 0

我刚刚开始尝试使用Microsoft.Office.Interop.Outlook。我成功地用下面的代码发送了一封电子邮件。

代码语言:javascript
运行
复制
public void Send()
{
    try
    {
        Outlook._Application _app = new Outlook.ApplicationClass();
        var test = _app.CreateItem(Outlook.OlItemType.olMailItem);
        Outlook.MailItem mail = (Outlook.MailItem) _app.CreateItem(Outlook.OlItemType.olMailItem);
        mail.To = "testemail@fakeaddress.com";
        mail.Subject = "Test Outlook Subject";
        mail.Body = "Test Outlook Body";
        mail.Importance = Outlook.OlImportance.olImportanceNormal;
        ((Outlook.MailItem) mail).Send();
    }
    catch
    {
        Notification.Notice("Error");
    }
}

我希望在try/catch之前有一个Validate()函数,这样它就可以检查是否启用了一个有效的outlook帐户。请问是否有人知道我如何检查是否设置了任何outlook帐户?

我试过这个

代码语言:javascript
运行
复制
public bool validate()
{
    Outlook._Application _app = new Outlook.ApplicationClass();
    Outlook.Accounts accounts = _app.Session.Accounts;
    return accounts.Count > 0;
}

但是,即使在我删除了outlook帐户之后,accounts.Count还是返回了1。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-05 15:27:49

总会有至少一个账户--商店。否则Outlook将无法运行。但是,即使有邮件帐户,您如何知道它们是否被适当地配置?除非您接管消息提交,否则您无法提前知道。

UPDATE:循环遍历Namespace.Accounts集合并查找Account.AccountType == olExchange、olImap、olPop3、olHttp的帐户。请记住,OOM只列出邮件帐户,而不是存储或通讯簿。

如果您正在使用Extended (C++或Delphi),您可以使用IOlkAccountManager::EnumerateAccounts(CLSID_OlkMail, ...) (您可以在OutlookSpy (我是它的作者)中使用该接口-单击IOlkAccountManager按钮)。如果扩展的MAPI不是选项,赎罪 (我也是它的作者)公开RDOAccounts对象;它的GetOrder(acMail)方法将返回所有邮件帐户。您只需要检查返回的集合是否包含任何元素。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37053244

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档