标签: outlook-addin

将ics文件导入Outlook.AppointmentItem

我有一个Outlook 2007加载项,试图将ics文件导入Outlook.AppointmentItem对象,以便我可以读取有关某些约会的属性.目前我无法将ics读回内存.关于我做错了什么的任何建议.

Outlook.Application app = new Outlook.Application();
var item = app.Session.OpenSharedItem("C:\\meeting.ics") as Outlook.AppointmentItem;
string meetingBody = item.Body; //<--*my item is null*
Run Code Online (Sandbox Code Playgroud)

谢谢

icalendar appointment outlook-2007 outlook-addin

14
推荐指数
1
解决办法
1326
查看次数

我可以向Outlook添加自定义"发送"按钮吗?

我正在为我的组织创建一个替代电子邮件的安全消息.我们与外部治疗提供者交换机密患者信息.为保护隐私,我们不能为此目的使用电子邮件.

除了他们习惯使用的Outlook/Exchange电子邮件之外,不是强迫用户在这里使用全新的收件箱,发件箱和创作界面,我是否可以简单地添加一个"发送安全"按钮来指导他们的消息到我的自定义服务而不是电子邮件服务器?

带有新按钮的Microsoft Outlook http://img38.imageshack.us/img38/5140/newbutton.gif

我从未为Office应用程序创建加载项.是否有可能做到这一点?我应该如何开始?

outlook add-in ms-office outlook-addin

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

如何从Outlook功能区上下文菜单中获取当前邮件项目

我正在创建一个Outlook 2010加载项,并为我的功能区添加了一个上下文菜单,用于idMso ="contextMenuMailItem".点击,我想删除一个类别,但在click事件处理程序中,当我将ctl.Context转换为MailItem时,它始终为null.

public bool btnRemoveCategory_IsVisible(Office.IRibbonControl ctl)
{
    MailItem item = ctl.Context as MailItem; //Always null
    if (item != null)
        return (item != null && HasMyCategory(item));
    else
        return false;
}
Run Code Online (Sandbox Code Playgroud)

有谁知道这里发生了什么?谢谢!

c# vsto outlook-addin

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

如何使用预先填充的附件打开Outlook的新邮件窗口

当用户点击我的应用程序中的某个按钮或链接时,我需要打开一个带有预填充附件的新电子邮件窗口.

outlook office-interop outlook-addin outlook-2010 c#-4.0

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

如何在VB.NET中使用Outlook.MailItem获取发件人电子邮件地址?

我已经尝试使用mailItem.SenderEmailAddressmailItem.Sender.Address,但他们都返回一个字符串,它看起来像这样:

/O=DOMAINNAME/OU=EXCHANGE ADMINISTRATIVE GROUP (FYDIBOHI43SPCLT)/CN=RECIPIENTS/CN=JOE BLOGGS8C3

实际上我想要joebloggs@domainname.co.uk重新开始.

有人有主意吗?

非常感谢你.

编辑:我做了一些挖掘; 它适用于"SenderEmailType"SMTP的电子邮件地址,它只适用于Exchange电子邮件地址.

编辑2:我已经尝试了这里指定的代码,但我认为它已经过时了,因为它抛出了"无法创建Active-X组件"错误.

编辑3: 对于任何遇到与我相同问题的人,我找到了答案(在C#中,转换为VB.NET,但仍然有效):

Private Function GetSenderSMTPAddress(mail As Outlook.MailItem) As String
    Dim PR_SMTP_ADDRESS As String = "http://schemas.microsoft.com/mapi/proptag/0x39FE001E"
    If mail Is Nothing Then
        Throw New ArgumentNullException()
    End If
    If mail.SenderEmailType = "EX" Then
        Dim sender As Outlook.AddressEntry = mail.Sender
        If sender IsNot Nothing Then
            'Now we have an AddressEntry representing the Sender
            If sender.AddressEntryUserType = Outlook.OlAddressEntryUserType.olExchangeUserAddressEntry OrElse sender.AddressEntryUserType = Outlook.OlAddressEntryUserType.olExchangeRemoteUserAddressEntry Then
                'Use the …
Run Code Online (Sandbox Code Playgroud)

vb.net email outlook mailitem outlook-addin

13
推荐指数
4
解决办法
3万
查看次数

Outlook 2003加载项将无法加载,但处于正常工作状态

我已经为2003,2007和2010创建了一个Outlook加载项.这个加载项在2007年和2010年运行良好,但在2003年没有在我自己的开发机器之外的任何机器上正确加载.没有代码问题,因为加载行为中没有显示错误,并且它不是禁用的项目.加载项也未显示在COM加载项列表中.这个加载项在2003年之前已经有效.

这是奇怪的部分.我有一个早期时间点的加载项副本,因此不包含完整版本的某些功能.这个加载项在2003年正确加载.因此,作为我的测试的一部分,在VM上,我安装了早期版本(我称之为测试)和当前版本不起作用(我将其称为完整版) .在HKCU>软件>类> CLSID> [[guid]]> InprocServer32下的注册表中,对于测试版本,我将"Manifest Location"和"Manifest Name"键更改为完整版的值.然后我运行Outlook,完整版完美运行.

我无法看到完整的加载项在它自己的注册表设置下是如何工作的,但在测试版下工作正常,并且仅在Outlook 2003上工作.

这是基本信息:

我的开发设置是:

  • Windows 7 64位
  • Outlook 2003已安装
  • 为外接程序项目运行VS2008,但也使用VS2010进行附属程序集.
  • 包含并修改了"设置安全性"项目,以允许多个程序集设置CASPol.

安装项目中包含以下预先要求:

  • .Net 2.0
  • .Net 3.5SP1
  • Office 2003 PIA(分别为2007年和2010年的2007年和2010年PIA)
  • VSTOSE运行时
  • Windows Installer 3.1

任何提示都会非常感激,因为我已经花了将近4天的时间来解决这个问题!

TIA.


更新1:

根据@JoaoAngelo评论我检查了注册表设置,它们如下:

HKCU>软件>类> CLSID> {加载项CLSID}> InprocServer32

 - (default) - '%CommonProgramFiles%\Microsoft Shared\VSTO\8.0\AddinLoader.dll'
 - ManifestLocation - path to the containing folder
 - ManifestName - the .dll.manifest file name
 - ThreadingModel - 'Both'
Run Code Online (Sandbox Code Playgroud)

HKCU>软件>微软> Office> Outlook> Addins> MyAddin …

c# deployment vsto outlook-addin outlook-2003

11
推荐指数
1
解决办法
3434
查看次数

如何从VSTO Addin中找出当前版本的Outlook?

我认为我今天的搜索技巧很糟糕,但我想知道我的加载项中运行的Office Outlook版本是什么?

即,我需要知道我的加载项是否与Outlook 2007或2010一起运行

是否有任何API可以用来查找当前的Outlook版本?

谢谢,哈莎

c# outlook vsto outlook-addin

11
推荐指数
1
解决办法
5951
查看次数

如何在功能区(C#)上的预先存在的选项卡中添加按钮?

我已经成功创建了一个新标签,并将其放在预先存在的标签旁边.然后我意识到我只有一个按钮,因此将它放在Home选项卡上更有意义(现在).虽然没有真正得到它.

我试图遵循指南和走路.我给了我一个XML并将其XML更改为以下内容.

<tabs>
  <!--<tab idMso="TabAddIns">-->
  <tab idMso="TabHome">
    <group id="group1" label="Hazaa!">
      <box id="box1" />
    </group>
  </tab>
</tabs>
Run Code Online (Sandbox Code Playgroud)

当我运行项目时,我没有对UI进行任何更改,所以我猜:

  1. 根本没有读取XML,
  2. 名称TabHome错误(至少对于Outlook 2010),
  3. 该属性idMso是错误的(至少对于Outlook 2010)或
  4. 任何上述的其他/组合.

我该怎么做才能改变色带?(Outlook 2010/VSTO/VS 2010/.NET 4).

c# ribbon outlook-addin outlook-2010

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

Outlook 2007 vsto加载项.获取电邮发件人地址

我有一个VSTO Outlook 2007加载项.当新邮件进入收件箱时,我正在尝试获取发件人电子邮件地址.
为此,我使用以下代码:

void inboxItems_ItemAdd(object Item)
{     
    Outlook.MailItem mailItem = Item as Outlook.MailItem;

    if (mailItem != null)
        string emailAdress = mailItem.SenderEmailAddress;  
}
Run Code Online (Sandbox Code Playgroud)

问题是当电子邮件来自同一个域时,emailAdress包含LDAP地址

/ O =第一个组织/ OU =第一个行政组/ CN = RECIPIENTS/CN = ADMINISTRATOR

虽然我想获得像这样的SMTP地址

administrator@orgname.com

我的问题是如何从内部域获取电子邮件的SMTP发件人地址?

PS
在Outlook 2010中,可以使用Sender属性解决此问题.但它在2007年不受支持.

item.Sender.GetExchangeUser().PrimarySmtpAddress
Run Code Online (Sandbox Code Playgroud)

c# vsto outlook-2007 outlook-addin

10
推荐指数
1
解决办法
7301
查看次数

如何捕获电子邮件

我在Outlook中创建了一个基本的自定义任务窗格.

我想拖动一封电子邮件并将其放入任务窗格.当被删除时,它应该允许我将电子邮件捕获为我猜的对象,允许我用它来做事情,例如保存到sharepoint位置.

那可能吗?如果是这样,任何指针?

我使用的是VS2013 C#.NET 4.0,加载项适用于Outlook 2010/2013.

c# sharepoint outlook-addin outlook-2010

10
推荐指数
1
解决办法
1219
查看次数