标签: outlook-addin

如何将自定义信息存储到 Outlook AppointmentItem

我正在创建一个 Outlook 插件来创建新约会,如下所示:

Outlook.AppointmentItem oAppointment =
    (Outlook.AppointmentItem)outlookApp.CreateItem(Outlook.OlItemType.olAppointmentItem);
oAppointment.Subject = subject;
oAppointment.Body = description;
oAppointment.Start = startDate;
oAppointment.End = endDate;
oAppointment.Save();
Run Code Online (Sandbox Code Playgroud)

现在,我想向这些约会添加一些自定义信息,以便应用程序知道加载项创建了哪些约会。我可以将该信息存储在 AppointmentItem 中,还是必须构建某种单独的数据结构来将约会全局 ID 映射到自定义信息?

谢谢。

c# outlook-addin

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

C# Outlook 2010 插件 - AppointmentItem.ItemProperties.Add Exception

我正在开发一个 Outlook 加载项,该加载项将表单区域添加到 IPM.Appointment 消息类。当显示该区域时,它首先会向 AppointmentItem 添加一些属性。

Outlook.AppointmentItem appItem;

private void FormRegion_FormRegionShowing(object sender, System.EventArgs e)
{
    try
    {
        appItem = (Outlook.AppointmentItem)this.OutlookItem;

        appItem.ItemProperties.Add("CustomProperty", Outlook.OlUserPropertyType.olText);
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.ToString());
    }
}
Run Code Online (Sandbox Code Playgroud)

这在我的日历上运行良好,但如果我尝试将插件与我具有编辑者或所有者访问权限的委托日历一起使用,则会引发以下异常:

System.UnauthorizedAccessException: You don't have appropriate permission to perform this operation.
  at Microsoft.Office.Interop.Outlook.Itemproperties.Add(String Name, OlUserPropertType Type, ObjectAddToFolderFields, Object DisplayFormat)
  at ThisAddin.FormRegion.FormRegion_FormRegionShowing(Ovject sender,EventArgs e)
Run Code Online (Sandbox Code Playgroud)

感谢任何和所有的帮助!

c# vsto outlook-addin outlook-2010

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

NetOffice - 加载项未加载

我正在使用 NetOffice 库开发 Outlook 加载项。这是一次很好的体验,但最后我更换了驱动器,重新安装了 Windows、Office 等。现在我的加载项无法运行,在 Outlook 选项的“COM 加载项”中我看到: Load Behavior: Not loaded. A runtime error occurred during the loading of the COM Add-in

这个问题甚至在 NetOffice 的简单示例中也存在,即该项目NetOffice Tools - Simple,它基本上不执行任何操作。

我将添加的构造函数放入日志记录代码(到文件)中,但它没有运行,因此即使构造函数也没有被命中。

有什么提示如何解决它吗?

编辑:使用 AddInSpy 我发现加载项状态为: Add-in DLL path is not found. 但不知道如何继续处理此信息。

outlook outlook-addin netoffice

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

在 VSTO 插件中存储一些数据的最佳方式是什么?

我开发了一个 Outlook 插件,必须打开或关闭。

为此,我声明了一个静态变量,如下所示,

ThisAddIn.cs

public static bool isAddInOn = false;
Run Code Online (Sandbox Code Playgroud)

RibbonButton.cs

    private void btnRibbon_Click(object sender, RibbonControlEventArgs e)
    {
        if (ThisAddIn.isAddInOn )
        {

            ThisAddIn.isAddInOn = false; 
            btnRibbon.Label = "Disabled";

        }
        else
        {

            ThisAddIn.isAddInOn = true;
            btnRibbon.Label = "Enabled";


        }
    }
Run Code Online (Sandbox Code Playgroud)

这是工作。但是当我关闭 Outlook 并再次打开它时,静态变量会再次重置。这意味着当我默认打开 Outlook 时,我的加载项处于禁用状态。

我只是想将该值存储在某个地方。这样我就可以在 Outlook 重新打开时检查该值。

设想:

1)开放的视野

2)通过单击其徽标(位于功能区中)来启用加载项

3)现在关闭前景

4)当我再次打开outlook时,它必须启用

那么我怎样才能做到这一点呢?

c# outlook vsto outlook-addin

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

Outlook 2016 VSTO 文件夹添加事件仅触发一次

正在创建一个 Outlook 插件来跟踪邮箱中的邮件处理。我正在包装文件夹和项目(向其中添加一些事件)并将它们存储在本地列表中,以避免 GC 在首次执行后清除所有事件。但是,文件夹添加事件仍然只触发一次。不确定是什么问题。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Linq;
using OutlookNS = Microsoft.Office.Interop.Outlook;
using Office = Microsoft.Office.Core;
using System.Net;
using System.Windows.Forms;


namespace OutlookAuditor
{
    public partial class ThisAddIn
    {
        #region private variables

        OutlookNS._NameSpace outNS;
        OutlookNS.Explorer explorer;
        string profileName = string.Empty;
        List<SuperMailFolder> wrappedFolders = new List<SuperMailFolder>();
        Logger logger = new Logger();
        SuperMailFolder folderToWrap;
        #endregion

        private void ThisAddIn_Startup(object sender, System.EventArgs e)
        {
            try
            {
                OutlookNS.Application application = this.Application;

                //Get the MAPI namespace
                outNS = application.GetNamespace("MAPI");
                //Get …
Run Code Online (Sandbox Code Playgroud)

c# vsto outlook-addin

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

Outlook.Explorer.SelectionChange事件只调用一次

我附加到Outlook.Explorer.SelectionChange事件.事件处理程序调用程序集,该程序集从Web服务检索某些数据.在调用该程序集后,当SelectionChange发生时,不再调用我的事件处理程序.

有任何想法吗?

这似乎与装配本身有关,而不是它正在做什么.只需从该程序集创建任何类,就会中断我的加载项中的事件.

.net outlook vsto ms-office outlook-addin

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

将电子邮件附件保存到UNC路径

我在为Outlook编写的VSTO加载项中有以下代码:

        savefolder = Regex.Replace(Guid.NewGuid().ToString(), @"[- ]", String.Empty);

        savepathfull = string.Format(@"{0}{1}", netloc, savefolder);
        DirectoryInfo di = new DirectoryInfo(@savepathfull);
        if (!(di.Exists))
            Directory.CreateDirectory(@savepathfull);



        removedFiles = new List<string>();

        for (int d = attachs.Count; d > 0; d--)
        {
            if (attachs[d].Size > smallAttachment)
            {
                removedFiles.Add(attachs[d].FileName);
                attachs[d].SaveAsFile(savepathfull);
            }
        }
Run Code Online (Sandbox Code Playgroud)

一切正常,直到我尝试保存附件,此时我收到UnauthorizedAccessException.我知道我的测试用户拥有该文件夹的完全权限,但我仍然收到此错误.

想法?

谢谢.

.net c# outlook vsto outlook-addin

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

VSTO Outlook:获取选定的附件

我正在尝试对Outlook 2010中的选定附件执行操作.我在VS2012中创建了一个Outlook VSTO项目.

这是用于在附件功能区上添加按钮的XML:

<?xml version="1.0" encoding="UTF-8"?>
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="Ribbon_Load">
  <ribbon>
    <contextualTabs>
      <tabSet idMso="TabSetAttachments">
        <tab idMso="TabAttachments">
          <group label="MyGroup" id="MyAttachmentGroup">
            <button id="AttachButton"
                size="large"
                label="Do something"
                imageMso="HappyFace"
                onAction="DoSomething" />
          </group>
        </tab>
      </tabSet>
    </contextualTabs>
  </ribbon>
</customUI>
Run Code Online (Sandbox Code Playgroud)

这是ThisAddIn.cs中的代码

protected override Microsoft.Office.Core.IRibbonExtensibility CreateRibbonExtensibilityObject()
{
    return new ProcessAttachment(this);
}
Run Code Online (Sandbox Code Playgroud)

这是ProcessAttachment类:

[ComVisible(true)]
public class ProcessAttachment : Office.IRibbonExtensibility
{
    private Office.IRibbonUI ribbon;
    private ThisAddIn plugin;

    public ProcessAttachment(ThisAddIn plugin)
    {
        this.plugin = plugin;
    }

    public void Ribbon_Load(Office.IRibbonUI ribbonUI)
    {
        this.ribbon = ribbonUI;
    }

    public void DoSomething(Office.IRibbonControl control)
    {
        var …
Run Code Online (Sandbox Code Playgroud)

c# vsto outlook-addin

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

将自定义按钮添加到Outlook 2010和2013中的现有功能区

我想自定义在OUtlook 2010和2013中单击"主页"选项卡时显示的功能区.

问题 -

  1. 这可能吗?或者我是否必须创建自定义功能区并且无法修改现有功能区?
  2. 如果现有的功能区可以修改,请告诉我可以提供此信息的链接.

我绝对不知道从哪里开始.任何链接,文档或示例都会有所帮助.我一直在经历msdn,但它都说自定义功能区,这不符合我的目的.我需要修改现有的功能区.

visual-studio-2010 outlook-addin outlook-2010

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

Office 365,Outlook加载项图标不会更新

开发Office 365,Outlook加载项。更改了外接程序图标(基本上只是将旧图标替换为新图标。图标具有相同的名称。)。OWA上的图标显示正常,但在Outlook 2016加载项上仍显示旧图标。

到目前为止的故障排除步骤:

  • 卸载重新安装加载项=>无效。
  • 卸载外接程序,重新启动Outlook 2016,重新安装外接程序=>无效。
  • 从“ Outlook选项”中的“自定义功能区”选项重置自定义设置=>无效。
  • 重新启动服务器=>无效

validate-office-addin显示“ manifest.xml”有效。

outlook outlook-addin office365

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