Can't access email with digital signature in outlook addin?

I'm developing a outlook addin, which access metadata of an email. But i have the problem, that the addin is not shown in the outlook web app, when i select an email with an digital signature. When I select the same email in the outlook rich client then iget the error, that the operation cannot be performed, because the permissions for the message are restricted. I set up the permission in the addin manifest to "ReadWriteMailbox".

Can someone help me, how i can access an email with digital signature in the outlook addin?


Outlook Add-ins overview listed Mailbox items available to add-ins. The following is the quote from the document:

Outlook does not activate add-ins if the current message item, in a compose or read form, is one of the following: Protected by Information Rights Management (IRM), in S/MIME format or encrypted in other ways for protection. A digitally signed message is an example since digital signing relies on one of these mechanisms.

To answer on your question ... you cannot access e-mail with digital signature from Outlook Office.js add-in.


Per Microsoft team comment, digitally sign messages are available to add-ons. I have verified with signed SMIME message, add-ons are active and functionality is fine. Waiting for documentation update.

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

  • 从约会检查器窗口中的委派电子邮件帐户获取信息 - Outlook 2013 使用 addin-express(Getting information from delegated email account from appointment inspector window - outlook 2013 using addin-express)
    问题 我正在使用 add-in-express 开发 Outlook 插件。 有两个邮件帐户 (A) 已通过委派授予帐户 (B) 的日历访问权限。 我正在为帐户 (B) 开发插件。 这是我想要实现的。 我使用帐户 (B) 的凭据登录 Outlook 后打开 (A) 的日历帐户(作为用户,而不是通过 C# 代码)。 然后双击日历的某个日期,这会为我打开一个新的检查器窗口。 在检查员的功能区中,有一个按钮来自我的插件。 用户单击按钮后,我需要在检查器的正文中显示电子邮件所有者(帐户 (A))的电子邮件和姓名。 这是按钮的代码 private void adxRibBtnDelegateTest_OnClick(object sender, IRibbonControl control, bool pressed) { Outlook.Inspector currentInspector = null; Outlook.AppointmentItem myAppointment = null; Outlook.MailItem myMailItem = null; string ownerEmail = string.Empty; string ownerName = string.Empty; try { currentInspector = Globals.ObjOutlook
  • Getting information from delegated email account from appointment inspector window - outlook 2013 using addin-express
    I am developing an Outlook plugin using add-in-express. There are two mail account (A) which has granted calendar access to account (B) through delegation. I am developing the plugin for account (B). Here is what I want to implement. I open the calendar account of (A) after login to outlook using the credentials of account (B) (as a user, not by C# code). Then double click on some date of the calendar, which leads to open a new inspector window for me. In the ribbon of the inspector, there is a button coming from my pluging. After user click the button, I need to show the email owner’s
  • How to save digital signature of received mail
    I am trying to save the digital signature of the currently opened mail item. Now I realize that Outlook prevents access to encrypt/sign a new email programmatically. Here I am focused on messages which have been received. So far, I am just able to use the MessageClass property to detect a signed email. Function GetCurrentItem() As Object Dim objApp As Outlook.Application Set objApp = CreateObject("Outlook.Application") On Error Resume Next Select Case TypeName(objApp.ActiveWindow) Case "Explorer" Set GetCurrentItem = objApp.ActiveExplorer.Selection.Item(1) Case "Inspector" Set GetCurrentItem =
  • 如何保存收到邮件的数字签名(How to save digital signature of received mail)
    问题 我正在尝试保存当前打开的邮件项目的数字签名。 现在我意识到 Outlook 阻止访问以编程方式加密/签署新电子邮件。 在这里,我专注于已收到的消息。 到目前为止,我只能使用 MessageClass 属性来检测签名的电子邮件。 Function GetCurrentItem() As Object Dim objApp As Outlook.Application Set objApp = CreateObject("Outlook.Application") On Error Resume Next Select Case TypeName(objApp.ActiveWindow) Case "Explorer" Set GetCurrentItem = objApp.ActiveExplorer.Selection.Item(1) Case "Inspector" Set GetCurrentItem = objApp.ActiveInspector.CurrentItem Case Else ' anything else will result in an error, which is ' why we have the error handler above End Select Set objApp = Nothing End Function Sub
  • Error getting SSO in Outlook 365 web addin 13005. Preauthorization missing
    I am working upon an outlook add-in and I am trying to get SSO token to call Graph API. I am referring this link to develop my addin Outlook addin SSO. I registered my App in Azure AD (multi-tenant). and followed everything step by step I added version override to Manifest <Id>Client_id-xxx-xxx</Id> <Resource>api://localhost:44361/Client_id-xxx-xxx</Resource> <Scopes> <Scope>openid</Scope> <Scope>offline_access</Scope> <Scope>profile</Scope> <Scope>Files.ReadWrite</Scope> <Scope>Mail.Read</Scope> <Scope>User.Read</Scope> <Scope>email</Scope> </Scopes> </WebApplicationInfo> authconfig.js var
  • 在 Outlook 365 Web 插件 13005 中获取 SSO 时出错。缺少预授权(Error getting SSO in Outlook 365 web addin 13005. Preauthorization missing)
  • Crm 2011 Outlook 客户端 - 关于强制设置(Crm 2011 outlook client - Set regarding mandatory)
    问题 我们的客户正在使用 Microsoft CRM 2011 Outlook 客户端,他们有独特的业务需求。 他们希望对所有使用 Outlook 发送电子邮件的员工强制执行“设置相关”(很奇怪吧?)。 如果用户在发送电子邮件时忘记设置,outlook 应该显示一条通知消息并且不应该让用户发送电子邮件。 我找不到任何开箱即用的功能,所以我决定编写一个 Outlook 插件。 有没有办法在 Outlook 插件 ItemSend 事件中知道邮件项目具有为相关字段设置的值? 我可以获得包括 CRM:xxxxx 在内的电子邮件主题,但由于电子邮件尚未在 CRM 中创建,我不知道如何提取相关数据。 回答1 有关跟踪的信息存储在邮件的 MAPI 属性中。 请参阅随附的屏幕截图。 它们应该可以在 ItemSend 事件中访问。 您可以像这样获得此信息(来自@Ahmeds 评论) dynamic regardingId = mailItem.PropertyAccessor.GetProperty("schemas.microsoft.com/mapi/string/‌​;{00020329-0000-0000-C000-000000000046}/crmRegardingId/0x0000001F"); 回答2 我在 VS2012 和 Outlook 2010 中使用了以下代码来获取相关的
  • Outlook 2010 AddIn behaves weirdly when mail invoked from other office client
    I really need help with this one. I have written an adding that adds a some text to the subject line of an email on send it also sets the same value in a property on the email through the PropertyAccessor. This works beautifully when the email is created through the Outlook interface. The problem I have encountered is when a user is working with excel and decides to send the spreadsheet as an attachment from the Excel 2010 -> File -> Save & Send -> Send as Attachment Menu Item. This will open the outlook 2010 mail editor as you would expect, the user can address the email and press send as
  • Set a MailItem as sent before calling SaveAs in Outlook Addin with C#
    I am building an Outlook 2010 addin to integrate it with some business software and have trapped the ItemSend Event. I check if it is a MailItem and if it is I call the SaveAs function to save it as a .msg to the file system (in the users temp folder). void Application_ItemSend(object Item, ref bool Cancel) { if(Item is Outlook.MailItem) { Outlook.MailItem mailitem = (Outlook.MailItem)Item; string filename = "somefilename.msg"; string path = System.IO.Path.GetTempPath(); string fullPathName = path+filename; mailitem.SaveAs(fullPathName, Outlook.OlSaveAsType.olMSG); } } I go on to read the file
  • How to get .eml or base 64 of an email message in outlook 365 web addin?
    I want to create an outlook web add-in ,in which I want .eml and and .txt of the email message and its attachment list? I am confused between EWS , Outlook RestAPI and MS Graph API to build it. I tried using EWS , but it had two issues: where to get these credentials ,(an example would be helpful) service = new ExchangeService { Credentials = new WebCredentials(OutlookEmailId, Password) }; EWS are obsolete now. So what is the right way of getting the email message content ? Could anyone please explain the steps in plain english. Also, any example would be a big help to start. I am newbie in
  • Fetching mail provider type in outlook web-addin
    I need to differentiate between enterprise and office365 email in outlook web addin. I am trying to do the same using email provider type. But, as per office documentation, AccountType in Office.context.mailbox.userProfile is only supported in Outlook 2016 for Mac, build 16.9.1212 and greater. Is there any other way I can differentiate between these two email types? or get provider type for old native email clients in mac as well as windows? Can I use ews url in office.context.mailbox in any manner?
  • 如何申请邮件安全证书(S/MIME)实现邮件加密和数字签名
    邮件作为目前互联网最为开放的沟通工具,在大家的工作和生活中,使用的频率非常高。特别是商务办公领域,邮件交流会涉及到很多的商业机密以及交易流程。正因为如此,邮件也会经常受到黑客或者不法分子的攻击。 那么如何才能确保邮件的安全可靠呢? 我们可以通过S/MIME协议来解决这个问题,S/MIME协议支持邮件的认证、完整性保护、鉴定及数据保密等,也就是大家经常听到的用邮件安全证书(S/MIME)来实现邮件的加密和数字签名(加密的作用是为了对邮件的内容进行加密,数字签名的作用是为了确保邮件内容未被篡改,保证邮件内容的完整性)。 目前支持S/MIME协议的邮件客户端,国内只有密信邮件客户端,国外有Outlook、雷鸟、Imail等。 邮件安全证书也和SSL证书一样,分为可信和不可信两种。可信的邮件证书outlook中显示的状态分别如下: 可信的邮件安全证书都是付费的,目前国内能够申请购买可信邮件安全证书的厂商也不少,但从价格和申请便捷性方面来看,目前密信提供的可信邮件安全证书是性价比最高的,价格为98元/年,平均一天只要0.26元。 今天我就来教大家该如何在密信申请全球信任邮件安全证书,希望能够帮助到大家。 (1)打开密信官网(www.mesign.com),点击瞅一眼栏目下面的全球信任的邮件证书购买链接; (2)填写好邮箱信息,选择购买数量和年限; (3)完成支付; (4)支付完成后
  • 当从其他办公室客户端调用邮件时,Outlook 2010 AddIn 的行为很奇怪(Outlook 2010 AddIn behaves weirdly when mail invoked from other office client)
    问题 我真的需要这方面的帮助。 我写了一个添加,在发送时向电子邮件的主题行添加一些文本,它还通过 PropertyAccessor 在电子邮件的属性中设置相同的值。 当通过 Outlook 界面创建电子邮件时,这非常有效。 我遇到的问题是当用户使用 excel 并决定从 Excel 2010 -> 文件 -> 保存并发送 -> 作为附件发送菜单项将电子表格作为附件发送时。 这将打开您所期望的 Outlook 2010 邮件编辑器,用户可以处理电子邮件并按正常发送,电子邮件将正常发送。 问题是电子邮件编辑器在发送后没有按照您的预期关闭。 我正在使用 Globals.ThisAddIn.Application.ItemSend 事件对电子邮件进行更改。 我还在调试时注意到此事件在发送时会触发几次。 此事件的取消参数在执行期间始终为 false。 回答1 终于找到了似乎有效的东西 为 Outlook 2010 开发 Inspector 包装器 万一链接失效,因为他们可能会这样做 这是包装纸 namespace OutlookAddIn { // Eventhandler used to correctly clean up resources. // <param name="id">The unique id of the Inspector instance.</param>
  • 在 Outlook 中获取已发送邮件的 MessageID(Get MessageID of a sent mail in Outlook)
    问题 我目前正在编写 Outlook VSTO 插件。 使用此插件,我想跟踪电子邮件对话并能够唯一标识邮件消息。 我们使用 Exchange 作为 MTA。 对于收件箱(和许多其他文件夹)中的所有邮件,我可以使用邮件标题中的消息 ID 进行匹配,但位于“已发送邮件”文件夹中的邮件没有设置消息 ID。 有没有办法从这些邮件中获取消息 ID? (我猜这些邮件没有标题,因为它们在发送之前被放置在文件夹中;但是在发送邮件之后,MTA 会给出一条状态代码为 250 的消息,其中包含消息 ID。)Outlook 是否知道或以某种方式保存MessageID? 如果 Outlook 不知道 MessageID,它如何跟踪对话? 还有其他方法可以识别邮件吗? 回答1 首先让我们澄清为什么你的意思是 是否有另一种方法来识别邮件 实际上,您可以复制一封电子邮件,然后它们将具有相同的MessageID但不同的ItemId 。 如果您有多个收件人: toms@gmail.com 、 toms@an.exchange.mailbox.com 、 toms2@an.exchange.mailbox.com他们将具有相同的MessageID (又名InternetMessageId ),即使第一个甚至不是 Exchange。 对于另外两个,在同一个 Exchange 服务器中有两个不同的消息。
  • Microsoft Outlook 2013:验证VBA项目签名时出错(Microsoft Outlook 2013: Error verify VBA project signature)
    问题 计算机重置后,我想将我的 VBA 宏用于 Outlook 2013。 在Outlook中,我收到错误消息: “尝试验证 VBA 项目的签名时发生错误。宏将被禁用。” 因此,VBA 编辑器指出: “此项目中的宏已禁用。[..]” 我试过了: 开发人员->宏安全性->(*)启用所有宏(不仅数字签名) 使用定义证书C:\Program Files (x86)\Microsoft Office\Office15\selfcert.exe 什么都没做。 任何想法? 回答1 刚刚遇到这个问题,这就是我最终解决它的方法(其他建议都不适合我): 创建一个自我证书——我称我的为“自我证书”(在 Office 2013 中从这里生成 - C:\Program Files (x86)\Microsoft Office\Office15\SELFCERT.EXE) 从开始菜单运行 certmgr.crt 并将“Self Cert”从“Personal\Certificates”复制到“Trusted Root Certification Authorities\Certificates”文件夹以管理员身份打开 Outlook.exe 打开 VBA(即开发人员 -> Visual Basic) 打开包含 VBA 代码的模块选择工具 -> 数字签名 -> 选择... 选择 OK 选择“Self Cert
  • Blank Auth Dialog Window in Outlook React Addin
    I have tried using Dialog API and office-js-helpers for authenticating users in my Outlook Addin React app and both of them create pop-ups for auth but they are both blank screens. Both methods return the following error The character encoding of the plain text document was not declared. The document will render with garbled text in some browser configurations if the document contains characters from outside the US-ASCII range. The character encoding of the file needs to be declared in the transfer protocol or file needs to use a byte order mark as an encoding signature. At first I thought
  • C# VSTO Add-in - Convert plain text email to HTML
    We have written a VSTO addin for Outlook 2010/2007. At one point, our addin must convert plain text emails to HTML from a ribbon control. This causes some strange behavior in Outlook: We're using the MailItem COM object We set MailItem.HTMLBody Email is converted to HTML, but for some reason the font is Times New Roman at 10pt The default font in Outlook is Calibri 11pt, which makes our email conversion look pretty strange to the user. It works as expected when you use the existing button in Outlook to convert to HTML, but not when using our addin's button. So we tried the following: Set
  • C# VSTO 插件 - 将纯文本电子邮件转换为 HTML(C# VSTO Add-in - Convert plain text email to HTML)
    问题 我们为 Outlook 2010/2007 编写了一个 VSTO 插件。 在某一时刻,我们的插件必须将纯文本电子邮件从功能区控件转换为 HTML。 这会导致 Outlook 中出现一些奇怪的行为: 我们正在使用 MailItem COM 对象我们设置 MailItem.HTMLBody 电子邮件被转换为 HTML,但由于某种原因字体是 Times New Roman at 10pt Outlook 中的默认字体是 Calibri 11pt,这使得我们的电子邮件转换对用户来说看起来很奇怪。 当您使用 Outlook 中的现有按钮转换为 HTML 时,它会按预期工作,但在使用我们的插件按钮时则不会。 所以我们尝试了以下方法: 提前设置 MailItem.BodyFormat 用以下内容包裹我们的电子邮件文本: <span style='font-size:11.0pt;font-family:"Calibri","sans-serif"'></span> (我们从查看新 Outlook 的源代码中得到这个想法电子邮件) 将<span>标签包裹在电子邮件正文中可以将字体更改为 Calibri,但字体大小保持在 10pt ... 有一个更好的方法吗? 另一种解决方法? 编辑,工作代码: if (_mailItem.BodyFormat != OlBodyFormat
  • Outlook 365 addin throws 401 unauthorized error on android outlook mobile app
    I am developing Outlook Add-In that will run over all modern browsers, android and iOS. I am using Managed EWS API to fetch the email and its attachment by passing ewsUrl, itemId and ewsToken in OAuthCredentials class which is my remote service. I am getting ewsToken by using Office.js getCallbackTokenAsync method from UI and passing all this information to my remote service to use the Managed EWS API to fetch email from exchange server. For browsers it works fine but when we use Outlook Mobile on Android, ewsUrl returns null which I hard-coded to https://outlook.office365.com/ews/exchange
  • 零信任能彻底解决邮件安全难题
    零信任是一个安全概念,就是不信任任何人和物,这虽然不是一项新技术,但这是一个创新的安全理念,为当今的数字化转型时代的网络安全发展指明了明确的方向。特别是目前的全球疫情时期,远程办公已经成为常态。据微软官网统计数据,在商业和教育行业的电子邮件使用量年同比增长28%,而超过90%的网络钓鱼攻击都是通过电子邮件进行的,每个月Office 365检测并阻止近4000万封网络钓鱼邮件。因此,每个组织都必须采取措施来防止和阻止钓鱼邮件安全威胁,这一点非常重要。 那么,如何才能根除这些恶意邮件攻击呢?还是先看看两类主要的邮件攻击方式: 其一:假冒公司总裁或者各政府部门的电子邮件地址给用户发送欺诈邮件,要求付款或提供个人重要账户信息等。这是由于电子邮件的设计“缺陷”造成的,因为发件人的电子邮件地址是很容易被假冒的。如果收件人邮件服务器设置了SPF发件人策略框架,则欺诈邮件往往就用类似域名来发送欺诈邮件,如admin@micr0soft.com (用0来替代o)来假冒微软公司邮件。 下图为假冒工商银行的邮件,发件人邮件地址看起来的确是工商银行域名,欺骗性非常强,只要用户点击了邮件的工行官网链接,实际上会链接到一个同工行官网一模一样的网站,让用户输入银行卡号和密码,许多用户就会纷纷中招。 其二:不安全的Web邮件服务登录方式。Web方式登录邮箱的确非常方便,使用任何浏览器都能登录邮箱查看邮件