我可以将自定义图标添加到“outlook”项目吗?

2023-12-15

我正在尝试添加自定义图标outlook使用 Office JS 插件 for Outlook 的项目(收件箱项目列表)。

enter image description here

如果 Officejs 无法做到这一点,那么我如何使用 Exchange 服务或任何其他工具或库来实现这一目标?


您可以更改图标,但是您可以选择图标。您需要使用 C# 或 VB.NET(例如 VSTO Outlook-addin)或 VBA。

我找不到您可以使用的图标值列表,但这是一个图像old列表 - 以防链接丢失。

Outlook Icons and values

图片来源,部分回答你的问题。

要更改图标,您需要使用MailItem.PropertyAccessor

几个 Const 示例(这些是十六进制值,但您也可以使用 Long)

Const OL_PHONE = &H15D
Const OL_GROUP = &H202
Const OL_NOTE = &H1BD
Const PR_ICON_INDEX As String = "http://schemas.microsoft.com/mapi/proptag/0x10800003"

使用以下辅助方法

'use the Get to see the value of an icon
'prior to this code you would need to get a reference to an Outlook mailitem
Dim res As New Object
GetExtendedPropertyValue(oMailItem, PR_ICON_INDEX, res)
'check the value of res or call Hex(res) to see its hex value

'here you can set the icon eg OL_GROUP etc
SetExtendedPropertyValue(oMailItem, PR_ICON_INDEX, OL_PHONE)

我制作的几个辅助方法

Private Function GetExtendedPropertyValue(ByVal aMailItem As Outlook.MailItem, ByVal aProperty As String, ByRef res As Object) As Boolean

    Dim oPropAcc As Outlook.PropertyAccessor = Nothing

    Try
        oPropAcc = DirectCast(aMailItem.PropertyAccessor, Outlook.PropertyAccessor)
        res = oPropAcc.GetProperty(aProperty)

        Return True

    Catch ex As System.Exception
        'Put your own logging here
    Finally
        If Not oPropAcc Is Nothing Then
            Marshal.ReleaseComObject(oPropAcc)
            oPropAcc = Nothing
        End If
    End Try
    Return False
End Function

Private Function SetExtendedPropertyValue(ByVal aMailItem As Outlook.MailItem, ByVal aProperty As String, ByVal value As Integer) As Boolean
    Dim oPropAcc As Outlook.PropertyAccessor = Nothing
    Try
        oPropAcc = DirectCast(aMailItem.PropertyAccessor, Outlook.PropertyAccessor)
        oPropAcc.SetProperty(aProperty, value)

        Return True
    Catch ex As System.Exception
        'Put your own logging here
    Finally
        If Not oPropAcc Is Nothing Then
            Marshal.ReleaseComObject(oPropAcc)
            oPropAcc = Nothing
        End If
    End Try
    Return False
End Function

这三个例子看起来像这样

example of the changed icons

PR_ICON_INDEXPidTagIconIndex 规范属性可以在这里找到并注意他们确实说

该属性(如果存在)是对客户端的提示。客户端可能会忽略该属性的值。

然而,情况似乎并非如此。

当然,图标的更改不会是永久性的。如果用户转发电子邮件或回复,则会发生变化。

EDIT顺便说一句,这是找出可能的图标的好方法。创建一个临时文件夹并将垃圾电子邮件复制到该文件夹​​中 2048 次。然后运行这段代码

Public Sub PrIconIndex() 

USE THIS MACRO WITH CARE! 

Dim objItems As Items 
Dim mail As MailItem 
 Dim i As Integer 

Set objItems = Application.ActiveExplorer.CurrentFolder.Items 

For i = 1 To 2048 
    Set mail = objItems(i) 

    Call mail.PropertyAccessor.SetProperty("http://schemas.microsoft.com/mapi/proptag/0x10800003", i) 

    mail.Body = CStr(i) 
    mail.Save 
Next 

End Sub 

以上内容来自这个论坛链接

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我可以将自定义图标添加到“outlook”项目吗? 的相关文章

  • 保护/取消保护 Word 文档

    有没有办法通过密码以编程方式保护 取消保护Word文档office js 我已经检查了 API 文档 https github com OfficeDev office js docs blob WordJs 1 4 OpenSpec re
  • 有没有办法将配置参数传递给 Outlook 插件

    我有一个 JS Outlook 插件 我希望能够将其部署到多个站点 但我希望将相同的代码部署到每个站点并在外部处理配置数据 如果可能 像 process env 适用于 Node js 服务器应用程序 之类的东西适用于客户端应用程序 我发现
  • 如何将 .env 添加到 codeigniter?

    我尝试按照以下步骤使 php 连接到 Outlookhttps learn microsoft com en us outlook rest php tutorial https learn microsoft com en us outl
  • 指示电子邮件的类型

    我有以下自动化程序 它将电子邮件发送给我自己 并添加了特定的链接 import win32com client as win32 import easygui import tkinter as to from tkinter import
  • 是否有任何API可以将Microsoft Exchange服务器与Java应用程序集成以进行任务同步?

    我正在尝试将 Java Web 应用程序与 Microsoft Exchange 服务器集成以实现双向日历 即任务 同步 是否有用于此集成的 Java 开源 商业 API 谢谢 文卡特 看一眼j 交易所 http sourceforge n
  • 以编程方式访问 Exchange 文件夹中的存档邮件

    我试图通过 Outlook 2013 的 ActiveX 接口访问给定文件夹中的所有邮件 我使用 Outlook 的消息 API MAPI 来获取所需的文件夹对象 但是 当我浏览此文件夹对象的所有项目时 许多消息丢失了 事实上 MS Exc
  • 如何在 C# 中使用 Outlook MAPI 打开 .eml 文件?

    我有一个 C 应用程序 可以读取 msg 文件并提取正文和附件 但是当我尝试加载 eml 文件时 应用程序崩溃了 我正在加载这样的文件 MailItem mailItem MailItem outlookApp CreateItemFrom
  • 如何打开带有预填充附件的 Outlook 新邮件窗口

    当用户单击我的应用程序中的某些按钮或链接时 我需要打开一个带有预填充附件的新电子邮件窗口 老问题 但我也遇到了这个问题 所以这里有一个复制和粘贴解决方案 Microsoft Office Interop Outlook Applicatio
  • 如何添加从 Outlook 到 Web 表单的拖放上传功能?

    我正在寻找一种方法 允许用户以简单的方式将 Outlook 电子邮件上传到基于 Web 的系统 我可以让它以手动方式为用户工作 他们可以将电子邮件从 Outlook 拖放到桌面上 这会创建一个 msg 文件 这非常有效 尤其是 电子邮件中是
  • Outlook 插件的图标未更新

    我的 Outlook 加载项中有一个按钮图标 例如 https xyz com img1 指向 img1 现在 如果我在部署加载项后更新图像 则更新的图像不会加载到功能区中 更新后 https xyz com img1 指向 img2 理想
  • 此插件导致 Outlook 启动缓慢

    我正在使用 C NET 4 5 开发 Outlook Addin 项目 但部署后 有时 Outlook 会禁用我的插件 并显示此消息 这个插件导致 Outlook 启动缓慢 我不知道我的插件出了什么问题 这只有很少的代码 并且ThisAdd
  • Excel VBA 根据条件通过电子邮件发送每一行

    我正在尝试得到这个 因此 发送如下所示的电子邮件 然后就变成这样 我需要它跳过空白电子邮件地址 在发送时将已发送插入到第五列 并在有可用电子邮件时为每一行创建一封新电子邮件 新电子邮件需要与该单独行相关的特定信息 我正在使用 Ron de
  • 当 vbscript.regexp 工作时,VBA RegExp 会导致编译错误

    我正在为 Outlook 2013 的 VBA 编写一个脚本 它使用正则表达式 我发现的每个示例似乎都使用Set regex New RegExp创建一个正则表达式对象 当我尝试这个时 我得到了编译错误 用户定义类型未定义 我设法使用正则表
  • 更新清单 XML 后强制 Excel 刷新命令功能区(对于 Office 加载项)

    我正在使用 office js 和位于共享驱动器上的 XML 清单来侧载 Office 加载项 加载加载项后 这会添加一个新的功能区 其中包含一些自定义命令图标 然而 编辑manifest XML文件后 假设我从功能区注释掉命令图标 我还没
  • Office 365 API 或 Azure AD Graph API - 获取其他人的日历

    我正在尝试获取 Office 365 日历 不是为 我 而是为某个联系人 即 在我工作的公司 有全球地址列表 中 我想访问 Dave 的日历 就像在 Outlook 中一样 我已经浏览过文档here https msdn microsoft
  • 在 MS Outlook 中,报告所有未收到回复的已发送邮件

    我每天都会发送大量电子邮件 但常常无法跟踪哪些邮件得到了实际回复 有没有办法使用 VBA 脚本查看上周发送的所有消息 并检查他们是否收到回复 具体来说 是一份已发送电子邮件的报告 这些电子邮件尚未从至少一个发送到的地址收到回复 我了解一点
  • 阻止 Outlook 将 HTML 转换为 RTF

    我正在为 Outlook 2007 编写一个加载项 一切正常 除了当我以 HTML 格式发送电子邮件时 Outlook 将其转换为 RTF 因此 如果收件人在例如中打开它 Thunderbird 他收到的是一条看起来很奇怪的短信 而不是我发
  • Office excel将CORS请求作为跨域请求

    我正在尝试从我的 Excel 插件发出跨域请求 正如这里所建议的 http dev office com docs add ins develop addressing same origin policy limitations http
  • 混合环境,404 个用于本地邮箱,200 个用于 Exchange Online

    我已经编写了一个能够与 Exchange Online 帐户通信的应用程序 目前我正在尝试测试以了解使其与在混合中运行的本地帐户一起使用所需的步骤 I have Windows Server 2012 R2 Exchange 2016 CU
  • 确定所选电子邮件是来自收件箱还是已发送邮件

    我正在编程Outlook 插件并需要确定所选电子邮件是否来自Inbox or Sent Items这样当我将电子邮件保存到数据库中时 我可以使用文件夹 收件箱 或 已发送 来标记电子邮件 我知道我可以将文件夹名称与 收件箱 或 已发送邮件

随机推荐

  • HTTP 状态 500 - Servlet appServlet 的 Servlet.init() 引发异常

    我想尝试一个简单的程序 但出现以下错误 我正在使用 Eclipse Kelper 和 Tomcat 7 0 尝试了很多事情 但没有什么对我有用 HTTP Status 500 Servlet init for servlet appServ
  • Firebase 安全规则阻止写入 Firebase

    注 此问题已标记 polymer 因为 Polymer 库用于生成 Javascript 这个问题是关于处理 Firebase 安全性的两个不同但相关的问题 在尝试让 Firebase 安全规则发挥作用时 问题 1 和问题 2 似乎提出了相
  • Javascript 通过匹配字符串对数组进行排序

    我有一个包含地理位置代码结果的数组 我想按与我搜索过的术语最接近的匹配项对其进行排序 例子 搜索 Pizza Array Pizza Uno Pizzeria Uno Burgers and Pizzeria Cino Pizzeria 排
  • 如何绕过 Swagger-UI 的身份验证?

    如何从浏览器绕过 Swagger UI 的令牌身份验证 我可以通过 Postman 向 Swagger UI 发出请求 当我从浏览器发出请求时 我收到错误 因为它请求令牌 http localhost 8080 swagger ui ind
  • 如何使用所需的 BSTR* 参数正确调用 IDispatch::Invoke

    有很多关于如何使用 BSTR 参数调用 IDispatch Invoke 的示例 我将此与许多其他 SomeType 参数一起使用 但无论我尝试什么 我要么得到类型不匹配的HRESULT E OUTOFMEMORY 要么得到访问冲突 在我看
  • 为什么我不能简单地将安装的 Perl 模块复制到其他机器上?

    我对 Perl 很陌生 但对动态语言还不太熟悉 我对模块的管理如此不直接感到有点惊讶 Sure cpan X理论上确实有效 但我正在从三台不同的机器和操作系统上处理同一个项目 在工作中 在家里 在外部环境中进行测试 在工作中 Windows
  • 使用内容值的更新方法

    Helper public boolean mMessagesSent String ID int Data SQLiteDatabase db this getWritableDatabase ContentValues contentV
  • 调用非对象上的成员函数 num_rows()

    我正在使用 CodeIgniter 并且我想从数据库中的表中获取一些数据 在我的模型中 我有这个功能 public function fetch cours limit start element id element this gt db
  • 使用 Python 请求在请求之间设置新的 cookie

    我现在正在这样做 但在最后一行失败了TypeError expected string or buffer import requests from urllib parse import urlparse url some url s r
  • Rake 无法迁移

    C Users MEGHA bbbb gt rake db migrate rake aborted SyntaxError C Users MEGHA bbbb db migrate 20140402130040 create comme
  • Python zip 单个列表元素

    我有这个 t 1 2 3 4 5 6 11 22 33 44 55 66 并想要得到这个 1 4 11 44 2 5 22 55 3 6 33 66 如何以Pythonic方式做到这一点 使用星号 它可以解压参数列表 gt gt gt zi
  • 创建表时出错

    在 MySQL 终端上粘贴以下 MySQL 命令后 出现以下错误 此代码是我从项目的生产环境中获取的 我想根据生产环境的数据库更新本地数据库 mysql gt CREATE TABLE cityguide pointofinterest g
  • 我可以将自己的jsp页面导入到另一个jsp页面中吗?

    我已经使用 netbeans 准备了一个静态 html 页面 我可以将该页面导入到另一个页面中 以便不再重新编写代码 然后进行相应的更改吗 您可以使用以下方法将 JSP 页面合并到另一个页面中 include像这样的指令 或通过使用
  • 按日期从 iPhone 删除本地通知

    iPhone 上的 LocalNotification 是否有可能在某个日期加载 我的问题是我为通知创建了一个事件 但在创建后释放了该对象 或者我可以创建一个具有相同数据的新对象来删除我的通知吗 对不起我的英语不好 预定的本地通知将为您提供
  • PHP 简单乘法的舍入误差[重复]

    这个问题在这里已经有答案了 PHP 在使用时似乎舍入不正确 int 来转换变量 为什么 multiplier 100000000 value 0 01020637 echo int value multiplier Output 10206
  • Ruby 是否执行尾部调用优化?

    函数式语言导致使用递归来解决很多问题 因此许多语言执行尾调用优化 TCO TCO 导致从另一个函数 或本身 在这种情况下 此功能也称为尾递归消除 它是 TCO 的子集 调用函数 作为该函数的最后一步 不需要新的堆栈帧 这减少了开销和内存使用
  • 在后台线程中创建可冻结对象时发生资源泄漏

    在我的应用程序中 我创建Freezable后台 线程池 线程中的对象 冻结它们 然后在主线程上显示它们 一切正常 除了一段时间后 整个系统变得缓慢并且应用程序最终崩溃 我已经设法将问题减少到这一行 var temp new DrawingG
  • F# 默认情况下使用惰性求值吗?

    F 甚至有惰性求值吗 F 默认情况下不是惰性的 类似于 Haskell 但显式的惰性是可用的 看惰性计算在 MSDN 上
  • Cent OS 6.3 上 usleep 的 CPU 使用率高

    我在 cent os 5 3 和 cent os 6 3 上编译以下代码 include
  • 我可以将自定义图标添加到“outlook”项目吗?

    我正在尝试添加自定义图标outlook使用 Office JS 插件 for Outlook 的项目 收件箱项目列表 如果 Officejs 无法做到这一点 那么我如何使用 Exchange 服务或任何其他工具或库来实现这一目标 您可以更改