标签: mapi

使用无MAPI的Access和VBA发送电子邮件

我想使用VBA无人值守地从Microsoft Access发送电子邮件.据我所知,内置方法"SendObject"使用MAPI意味着安全提示和Outlook配置之类的东西.由于我想使用任务计划程序启动不同的报告,我倾向于远离MAPI并且更喜欢其他一些解决方案.不是运输申请,而是内部申请.想法?

email mapi ms-access vba ms-access-2007

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

是否有Outlook MAPI命名空间的ID列表?

我工作的一个Outlook插件,我期待为涉及该MAPI属性有名字比少一点含糊的完整列表这个.

有很多关于如何访问这些属性的文档 ,但我没有太多运气找到任何告诉我任何属性的东西.

PS我在这个主题上看过这篇文章,但我真的想了解更多关于这个主题的信息.

或者,如果有关于扩展外出助理的信息,将不胜感激.

谢谢.

mapi vsto outlook-2007 outlook-addin

5
推荐指数
2
解决办法
6969
查看次数

如何连接到特定的Outlook/Exchange帐户?

我正在创建一个应用程序来访问Exchange 2003服务器上托管的特定电子邮件帐户,并对找到的未读电子邮件执行一些操作.我真的不太了解MAPI是如何工作的,所以如果我错过了一些非常明显的东西,我也不会感到惊讶!我(不幸的是)我正在使用C#,我已经阅读了这可能导致的问题(我担心会产生影响,但是我的老板希望它能像这样完成......).

我很难找到关于如何连接到特定帐户的任何好消息!该应用程序将从someones笔记本电脑运行(比如说我的),因此打开时会有一个Outlook连接的默认帐户.所以:

  • 是否可以从用户已拥有自己的帐户且可能已打开Outlook的计算机连接到另一个帐户?

  • 如果有可能.我该怎么做呢?启动Outlook互操作对象时,应用程序会自动获取用户帐户并将当前用户设置为该帐户.我曾希望这种Logon()方法可以对此进行排序,但不是.即使只是运行 Outlook.Application olApp = new Outlook.Application(); Goes并将当前用户设置为标准帐户.

我希望我有意义(可能不是),但随时可以在评论中提出更详细的问题,我会尽快回复.就像我说的,我对MAPI和Exchange知之甚少,所以我正在努力解决我的问题.

c# mapi outlook exchange-server

5
推荐指数
1
解决办法
3999
查看次数

按类别筛选Outlook约会

我编写此代码以查找指定时间范围内指定类别的所有约会的总持续时间:

private readonly MAPIFolder _timing;

private int CalculateTotalDuration(DateTime start, DateTime end, string category)
{
    string filter = String.Format(
        "([Start] >= '{0:g}') AND ([End] <= '{1:g}') AND ([Categories] = '{2}')",
        start, end, category);
    return _timing.Items.Restrict(filter).Cast<AppointmentItem>().
        Sum(appt => appt.Duration);
}
Run Code Online (Sandbox Code Playgroud)

当与俄语版本的Outlook一起使用时,此代码会导致以下异常(虽然我没有使用英文版测试它):

System.Runtime.InteropServices.COMException was unhandled
  Message=??????? ???????.
  Source=Microsoft Outlook
  ErrorCode=-2147352567
  StackTrace:
       at Microsoft.Office.Interop.Outlook._Items.Restrict(String Filter)
       ...
Run Code Online (Sandbox Code Playgroud)

当我更换[Categories]使用[?????????],即

string filter = String.Format(
    "([Start] >= '{0:g}') AND ([End] <= '{1:g}') AND ([?????????] = '{2}')",
    start, end, category);
Run Code Online (Sandbox Code Playgroud)

它适用于俄语版的Outlook.但显然它不适用于其他语言.

如何以多语言方式按类别筛选Outlook约会?

c# mapi outlook internationalization outlook-2010

5
推荐指数
2
解决办法
1780
查看次数

从文件夹路径获取Outlook中的MAPI文件夹

我正在尝试使用此页面上的功能:http://www.outlookcode.com/d/code/getfolder.htm使用文件夹路径导航到文件夹.(我会把这个代码复制到这个问题的底部 - 我原样使用它,完全没有修改.)我需要使用它的原因是Outlook中的默认收件箱与我需要的收件箱不同积极点.通过右键单击并点击属性并查看位置,我知道相关收件箱的路径.

这是我使用的代码:

Set objOutlook = CreateObject("Outlook.Application", "localhost")
Set objNamespace = objOutlook.GetNamespace("MAPI")
Set Inbox = GetFolder("\\itadmin@email.org\inbox")
Debug.Print Inbox '<-- This fails
Set InboxItems = Inbox.Items '<-- This also fails
InboxItems.SetColumns ("SentOn")
Run Code Online (Sandbox Code Playgroud)

这将返回运行时错误91,对象变量或未设置块变量.

我不知道这是什么意思.如果你可以帮我解决这个错误,那就太棒了,如果你有办法让我完全避免这个问题,那也很棒.谢谢!

Public Function GetFolder(strFolderPath As String)As MAPIFolder
  ' strFolderPath needs to be something like 
  '   "Public Folders\All Public Folders\Company\Sales" or
  '   "Personal Folders\Inbox\My Folder"

  Dim objApp As Outlook.Application
  Dim objNS As Outlook.NameSpace
  Dim colFolders As Outlook.Folders
  Dim objFolder As Outlook.MAPIFolder
  Dim arrFolders() As …
Run Code Online (Sandbox Code Playgroud)

mapi outlook vba

5
推荐指数
1
解决办法
3万
查看次数

MAPI - 查找包含MAPI URL(或打开消息)的文件

我正在使用Windows Search API,它返回mapi URL.

  1. 如何找到包含URL数据的文件?例如,该消息来自PST文件的路径?

  2. 我如何以编程方式获取MAPI消息的内容或数据(即,而不是仅使用shell打开它).

mapi winapi

5
推荐指数
1
解决办法
74
查看次数

下载MAPI33.dll的位置?

从哪里可以下载MAPI33.dll.我从一个网站获得了链接http://www.mapi33.adexsolutions.com/但似乎这是不正确的.

mapi

4
推荐指数
1
解决办法
7240
查看次数

如何最好的未来证明我需要连接到Outlook的应用程序?

我有一个用Delphi编写的联系人管理应用程序,它具有我10年前开发的"与Outlook同步"功能.现在,我将回过头来添加一些功能并修复一些错误.此同步功能使用Outlook对象模型开始,但它有一个名为"使用MAPI增强功能"的可选模式,它使用纯MAPI来加速查找更改的方式,并允许使用RTF同步注释而不是只是纯文本.

我想知道是否支持两个并行执行路径是一个好主意.

如果我使用所有MAPI,我相信我会避免一些安全提示,并且我会避免使用防病毒具有阻止我的应用程序连接到Outlook的"脚本阻止"功能的情况.但我相信,在不利方面,我的32位应用程序将无法使用MAPI连接64位Outlook 2010.我总是想知道MAPI的未来.

如果我坚持使用Outlook对象模型,我的32位应用程序是否能够连接到Outlook对象模型(因为它不在进程COM中)?如果是这样,这是保持我的Outlook对象模型执行路径到位的一个令人信服的理由.但如果没有,如果我的应用程序需要为x64编译,那么为什么不选择纯MAPI呢?

delphi 64-bit mapi outlook

4
推荐指数
1
解决办法
664
查看次数

如何使用MAPI获取Outlook联系人组?

在Outlook 2010中,您可以创建联系人并将其添加到组.有没有办法获得这些群组及其中的联系人列表?以下是我访问联系人的方式:

var outlook = new Outlook.Application().GetNamespace("MAPI");
var folder = outlook.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderContacts);
foreach (var curr in folder.Items.OfType<Outlook.ContactItem>())
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

不是指默认联系人文件夹,例如"联系人"和"建议的联系人".

c# mapi outlook contacts

4
推荐指数
1
解决办法
4455
查看次数

使用 Redemption 将 MSG 转换为 EML 后,内部地址丢失

我目前正在评估redemption将 MSG 文件转换为 EML 文件的库。

RDOSession session = new RDOSession();
RDOMail msg = session.GetMessageFromMsgFile(msgFile);
msg.SaveAs(emlFile, rdoSaveAsType.olRFC822);
Run Code Online (Sandbox Code Playgroud)

到目前为止,与我针对“野生 MSG 文件语料库”测试过的其他所有内容相比,Redemption 在这里做得非常好。

然而,内部电子邮件地址存在问题。对于内部电子邮件地址,生成的 EML 文件personal仅包含地址的一部分,但不包含带有符号的真实电子邮件地址@

在任何情况下,我都可以看到RDOMail的收件人对象包含SMTPAddress属性中的真实电子邮件地址。但是Address包含外部地址的“真实电子邮件地址”的属性有所不同,但类似于/O=EXAMPLE ORGANIZAION/OU=SOME GROUP/cn=Recipients/cn=FBarney内部地址的属性。

后者正是在生成的 EML 文件中缺少真实电子邮件地址的地址。

所以我试图覆盖这样的Address属性:

recipient.Address = recipient.SMTPAddress;
Run Code Online (Sandbox Code Playgroud)

但这对最后生成的 EML 文件没有任何影响。

如何在不丢失内部地址的真实电子邮件地址的情况下将 MSG 转换为 EML 并进行兑换?

c# mapi msg eml outlook-redemption

4
推荐指数
1
解决办法
776
查看次数