问题标签 [mailitem]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - Backgroundworker 允许 UI 在遍历 Outlook MailItems 时冻结
我正在开发一个 WPF 支持工具,它查看共享的 Outlook 邮箱,收集文件夹,在 TabControl 中创建 TabItems 来表示文件夹,然后收集它在过去 14 天的文件夹中找到的 MailItems。每个文件夹可能只有大约十几个 MailItems,所以无论如何都不是很大。
启动时,应用程序遍历每个文件夹的 Mailitems 并将它们添加到 MailItem 列表中,稍后我将添加到相应 TabItem 的 ListBox 的绑定 ObservableCollection 中。
我遇到的问题是 UI 在遍历 Outlook 文件夹中的 MailItems 时会锁定。我添加了一个 Backgroundworker 例程来首先在后台收集邮件,但在此期间 UI 仍然完全没有响应。我不明白为什么这个过程根本不会弄乱用户界面。
我的简化代码如下。请注意,除了在此示例中迭代它们之外,我实际上对 MailItems 没有做任何事情,但它冻结了 UI。为什么?另外值得注意的是,总共有大约 10 个 Outlook 文件夹。创建了一个 TabItem(以 ListBox 作为内容)来表示一个文件夹,因此会导致下面的代码启动——换句话说,在初始化过程中应该有大约 10 个 Backgroundworkers 启动。
有什么建议或想法可以更好地实施吗?理想情况下,我希望应用程序启动并顺利填充显示,而不是挂起并突然显示所有内容。
header - 转发/回复时保持 Outlook mailItem 属性(互联网标头)不被删除
我正在尝试启动由相同 ID 定义的邮件线程(ID 需要是一个特定值,等于我们数据库中的值)。我可以像这样分配一个自定义的互联网标题:
sendMail 是一个olMailItem
并且taskId
是所需的 id。
当这封邮件被发送和接收时,我可以使用该GetProperty
方法获取我的 ID,但是当转发或回复时,互联网标题被删除,我无法再访问此属性。
有没有办法让您的自定义互联网标题不被删除,无论它去哪里?
c# - 通过编码编辑 MailItem.RTFBody
我已经使用 UTF8Encoding 从 MailItem 编码 RTFbody 取得了一些成功。我能够撰写新电子邮件,完成所有新电子邮件的工作,然后单击发送。点击发送后,我在电子邮件中附加了一个标签,该标签也添加到了类别中。这一切都通过 RTFBbody 工作。
当我回复 RTF 电子邮件时,问题就出现了,出于测试目的,这些电子邮件只是我发送给孤独的自己的电子邮件。当我发送回复电子邮件并添加新标签时,我先删除旧标签,然后添加新标签。当我RTFBody
在回复电子邮件中设置包含新标签的已编辑字符串时,我收到“内存或磁盘空间不足”错误。当我只是删除具有相同功能的标签时,不会发生这种情况。
贝娄是我正在使用的代码:
这些是我打的电话:
删除旧标签:ChangeRTFBody(lastTag, "");
添加新标签:ChangeRTFBody("}}\0", newTag + "}}\0");
就像我说的,这在我创建新电子邮件并发送时有效,但在我尝试回复同一封电子邮件时无效。似乎byte[]
删除后的大小几乎翻了一番。当我在删除期间检查它时,它大约为 15k 字节,而当我在添加期间检查时,它跳到超过 30k 字节。当我尝试将新膨胀的内容添加byte[]
到 rtfBody 时,我得到了错误。
感谢您提供任何帮助和提示,并对所有阅读内容感到抱歉。
outlook - 使用特定的发件人地址发送 Outlook._MailItem 电子邮件
有什么方法可以在以编程方式(使用 c#)发送 Outlook._MailItem 电子邮件时覆盖发件人电子邮件地址?以下是非工作代码。
c# - 从 MailItem 对象获取 SentOnBehalfOfName 和帐户名称(Outlook 共享插件)
我正在使用 Vs2010 -> Extensibility->Shared Add-in 我已将事件处理程序添加到我的 ItemSend
mailItem.SenderEmailAddress,mailItem.SentOnBehalfOfName
mailItem.SendUsingAccount
我得到所有这些属性为空
请任何人帮助我,我想从SentOnBehalfOfName
电子邮件中获取帐户名称。
printing - 从打印中隐藏自定义 ItemProperties。互操作Outlook
我编写了一个 Outlook 插件,它基本上允许通过 Outlook 接收的电子邮件与网站链接,以便也可以在网站的通信功能中查看电子邮件。我在 MailItem 的 ItemProperties 中存储了其他详细信息,这些详细信息基本上就是电子邮件在网站中相关的用户 ID。
我遇到的问题是我添加到 MailItem 的任何 ItemProperties 都在打印电子邮件时被打印。有谁知道在打印电子邮件时如何排除自定义 ItemProperties?
下面是创建自定义 ItemProperty 的代码:
unicode - 使用 C# 以 UTF-8 / Unicode 保存 Outlook 邮件项目
我们创建了一个 Outlook 插件,它(除其他外)可用于将邮件项目以文本形式保存到特定文件夹。但是,生成的文本文件的文本以 ANSI 编码,我想将其保存为 UTF8。我已经设置了邮件项目的代码页,如下所示:
但是,生成的文件保存为“ANSI as UTF8”,所有扩展字符(例如阿拉伯语或俄语)都以问号形式出现。有谁知道我如何将邮件项目保存在 utf8 中?
非常感谢。
干杯,
马丁
vba - Outlook VBA - 一些 MailItem 属性返回值,其他不返回
编辑:新信息:我刚刚意识到,虽然 Mailitem.Body 的返回是 "",但实际值是 "Application-defined or object-defined error" 。我不完全确定这意味着什么,但我知道它出现在多个字段中——我在下面提供了一个屏幕截图。
我遇到了一个问题,某些属性将返回正确的值,而其他属性则不会。我有一个示例电子邮件,其中我有一封主题为“主题”的电子邮件,邮件是“正文”,发件人电子邮件地址是“email@address.com”,发送日期是 2013 年 6 月 12 日。
当我运行以下代码时:
我得到的是 ComputerName = "Subject"、ErrorState = ""、SenderEmail = "" 和 strDate = "2013/6/12"(在这种情况下是正确的格式)。为什么这会为两个 Mailitem 属性返回正确的值,而不是为其他两个?这是一个非常奇怪的问题,我希望大家能给予任何帮助!
我将在此处为代码添加更多上下文:
GetFolder 是一个通过文件夹路径获取邮箱的函数。我必须这样做,因为我没有使用 Outlook 中的默认收件箱。
我还尝试使用下面建议的 MailBody 函数,以防正文为 HTML 或 RTF 格式。不幸的是,证明body是正常的,MailItem.Body应该找回来了,还是不行。MailItem.Body 返回“”,即使我知道电子邮件有正文。身体只是数字 1,这就是我应该得到的。
另外,我应该注意电子邮件的发件人与收件人相同;换句话说,这封电子邮件是从一个电子邮件地址发送给它自己的。我不知道这是否会有所作为,但我想我会把它放在那里以防万一。
c# - Outlook 加载项,右侧事件处理程序
我尝试构建一个加载项,将附件从具有特定主题的邮件中保存。到目前为止,效果很好,但我认为我使用了错误的事件处理程序来满足我的需要。
如果有新邮件进来,它应该开始,然后检查整个收件箱+新邮件。
atm 我正在使用 Microsoft.Office.Interop.Outlook.ApplicationEvents_11_NewMailEventHandler()
所以他只是在寻找没有新项目的收件箱,因为那时新邮件不是收件箱的一部分
我能做什么呢?
powershell - 如何引用文件夹和子文件夹
如何引用电子邮件文件夹和子文件夹?在我的代码的第 8 行中,我在 olxEmailFolder 和所有其他获取文件夹的尝试中都失败了。有什么想法吗?