问题标签 [outlook.application]

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.

0 投票
1 回答
76 浏览

excel - 从特定单元格中提取数据以作为电子邮件中的文本加载

我正在尝试通过单击按钮生成一封电子邮件,并让它从按钮所在行的第一个单元格中加载数据(作为电子邮件的主题行)。

示例:在第 22 行中,我在 X 列中放置了一个按钮,当单击它时,它会使用单元格 A22 作为我的电子邮件主题创建一封电子邮件。

我知道如何通过将主题行数据直接输入到脚本中来做到这一点,但是,我想避免为电子表格中的大量行创建数百个脚本。

这是我目前拥有的手动输入方法:



我只需要从相应按钮行中的 A 列填充主题。我想我需要创建另一个对象,但我不确定正确的代码是什么,我不确定如何让脚本将它拉为“.subject =”。

这是我尝试过的基本数据:

► ActiveSheet.Buttons(Application.Caller).TopLeftCell

► "按下按钮的行:" & ActiveSheet.ShapesApplication.Caller).TopLeftCell.Row

► Dim SubjectTo As String
    SubjectTo = Cells(XXX,XXX).Value
    .subject = SubjectTo

还有很多其他关于网络的建议。

所有人都在他们的原始脚本中工作,但我不知道如何将它们合并到我想要做的事情中。

我什至尝试使用表单形状而不是 ActiveX 按钮。

0 投票
2 回答
90 浏览

vba - 我如何通过 VBA 代码查看 Outlook 对象已关闭

我使用 Outlook 使用以下代码编辑主题和正文:

如果在代码生成的消息框中按 OK 之前关闭 Outlook,我会在“PutSubjectBody MyMail.Subject,MyMail.HTMLBody”行中收到运行时错误“远程服务器计算机不存在或不可用”。如您所见,我尝试使用 IsNull 来确定 MyMail 是否仍然“活着”。我可以用什么来代替“IsNull”?

0 投票
1 回答
121 浏览

outlook - 我可以通过代码中的 Outlook.Application 访问 Outlook 加载项吗?

Outlook.Application用来从我的 C# 代码发送电子邮件。我有这个电压加密插件,它允许您“发送安全”消息而不是正常发送。

我可以在我的代码中使用此发送安全吗?有没有办法访问加载项?

我可以遍历Microsoft.Office.Core.COMAddIns并看到它在那里,但不能对这些加载项做任何事情。只需查看有关它们的基本信息。

dll公开了一个接口,该接口VoltageAdddIn具有“SendSecureButtonClicked(object ribbonControl)”方法。也许我可以以某种方式使用它?

0 投票
1 回答
52 浏览

vb.net - 删除消息框后,VB.NET 运行方式不同 - Outlook 应用程序

我目前正在开发一个 Outlook 应用程序,它在测试期间似乎运行良好。

这段代码似乎MSGBox("ASDFG")在 就位(rsts.Countreturns 1)时有效,但一旦它被删除,语句就会返回0。我试图通过添加Debug.Print's 来超越这一点,看看这是否有任何区别,但我仍然发现代码只有在 'sMSGBox到位时才能正确运行。

如果脚本返回 0,我什至添加了一个Timer1间隔以每秒重新运行脚本。


带味精盒

带味精盒


没有 MSGBox + 调试

没有味精盒

0 投票
0 回答
27 浏览

asp.net-mvc - 我们如何将 Outlook 与没有 Outlook.Application 的规则集成到我们的应用程序中?

我想在我的项目中添加 Outlook 功能。

现在我使用了 Outlook.Application(),所以它从系统中可用的桌面 Outlook 应用程序中获取邮件 ID。

但我想在没有 Outlook.Application 的情况下通过用户在 web 上输入的邮件 ID 和密码。

为此我能做什么?

0 投票
1 回答
857 浏览

outlook - Outlook 2016 是否仍支持 Outlook.Application 组件?

我有一些代码使用 Windows 上的默认电子邮件客户端发送电子邮件。

如果是 Outlook,我将使用“Outlook.Application”ole 对象,否则我将回退到 MAPI。这已经在多个站点使用了几年,但现在它不适用于新客户。

使用 Win 10 和 Outlook 2016 MSO (16.0.11901.20070) 32 位的这种方法存在两个问题

  1. 从注册表读取的返回是 PackagedMail ...我不知道这是什么,也找不到任何关于它的信息。
  2. Outlook.Application 不包含在注册的类中
  3. MAPI 返回 MAPI 000001 不正确的函数错误

我在网上找到了一些线索,表明 Outlook 中的 MAPI 依赖于 Outlook.Application OLE。

我只需要知道如何强制它安装 OLE 类,或者为 MAPI 正确注册它,或者知道它是否不再受支持,我需要找到不同的解决方案。

我要做的就是发送一封带有 pdf 附件的电子邮件。我发现 Outlook 的 MAPI 支持似乎有点不稳定,我最好使用 OLE,但如果它不再受支持或需要额外的步骤,我需要知道。

如果有人对 PackagedMail 有任何详细信息,那将是一个奖励。

0 投票
1 回答
29 浏览

c# - MS Outlook create non-blocking email from template

I create an email from MS Outlook template. The email looks fine and it can be edited or sent. While the new email is not yet sent, the user has no access to the other MS Outlook items. If there are other open emails, the user can't copy content from the other emails, to paste it in the new email. We also can't open any other emails from Outlook. Is there a way to create a new email, while still having access to the other functions and items of MS Outlook?

0 投票
0 回答
85 浏览

python - 使用 Python 和 win32com 将 MailItem 添加到 PST

我无法将新 MailItems 添加到我动态创建的 PST 文件中。我可以自己创建 MailItems,并将它们保存到我计算机上的某个位置就可以了。但是,当我尝试将 MailItems 保存到 PST 时,没有任何反应。我尝试调用该Items.Add()方法,它给了我一个新的 MailItem,但没有增加 Items 集合。我到处寻找解决方案,我在 VBA 和 C# 中看到了一些示例,但是由于我对这两种语言都没有经验,因此翻译成 Python 效果不佳。

目前使用 Python 3.9.1

以下是我正在做的,请原谅任何错误,我对我的 Python 非常生疏:

提前致谢!

编辑:

在发布问题后想出了一个临时解决方法,并进一步弄乱了代码。打电话给我我需要的结果mailItem.Move(pstfld)mailItem.Save()MSG 文件被添加到 PST 文件中。

0 投票
1 回答
284 浏览

excel - 如何遍历列表、查找数据并在 HTML 电子邮件中发送?

我有以下列表,其中包含一个或多个特定 ID 的条目。
在此处输入图像描述

我有第二个列表,其中包含唯一 ID 和电子邮件地址。
在此处输入图像描述

我需要遍历该列表,向每个 ID 发送一封电子邮件,并列出电子邮件中每个匹配行的数据,同时提及总金额。

发送到 ID 1234 foo@bar.com 的电子邮件示例:
在此处输入图像描述

到目前为止我所拥有的:

0 投票
3 回答
754 浏览

windows - CreateObject("Outlook.Application") 在某些装有 Office 365 的计算机上不起作用

我有一个客户端站点,在多台装有 64 位 Office 365 的计算机上运行我们的 Windows 桌面软件。

在他们的大多数计算机上,我们的软件都能够通过 Outlook 发送电子邮件。

但是,他们的两台计算机去年升级到了 365(由他们的 IT 技术人员,而不是我们),当他们尝试从我们的软件发送电子邮件时都失败了。

Outlook 本身可以正常工作,我们的软件在这两台计算机上也可以正常工作。但是这两个都不能从我们的软件发送电子邮件。(可以正常发送电子邮件的其他计算机正在运行我们软件的完全相同版本。)

发送电子邮件时,我们的软件首先检查 Windows 注册表中是否存在“Outlook.Application”或“Outlook.Application.*”键,以确定是否安装了 Outlook。如果未找到,我们的程序逻辑会假定未安装 Outlook,并尝试使用 MAPI 来通过另一个电子邮件客户端(如 Thunderbird)(或通过 Outlook 使用 MAPI)发送邮件。但是,这些计算机随后都崩溃了,因为 MAPI 不能在 64 位计算机上运行。

当我调查这两台有问题的计算机时,我发现它们的 Windows 注册表中的任何地方都没有“Outlook.Application”或“Outlook.Application.16”键。我以前从未遇到过这种情况。在不创建这些注册表项的情况下如何以及为什么安装 Office 365?(我刚刚在我办公室的两台计算机上安装了 Office 365,它们都有这些密钥并且运行良好。而且我们以前从未在任何其他用户站点遇到过这种情况。)

我与他们的 IT 技术人员讨论了这个问题。他完全卸载了 Office 365,并使用“在线”安装方式从头开始安装它们(我曾在我的计算机上使用过——我向他发送了 URL 以确保它)。但是,在此之后,他们仍然无法发送电子邮件。当我调查时,我发现注册表项仍然丢失。

然后他们的 IT 技术人员让我导出“Computer\HKEY_CLASSES_ROOT”中的所有“Outlook.Application”和“Outlook.Application.16”键并发送给他。他在这两台计算机上都导入了这些,但并没有解决问题。

但是,由于密钥现在已经存在,我们的软件随后尝试使用 OLE 直接通过 Outlook 发送电子邮件。但是,它在尝试创建 Outlook 应用程序对象的行上崩溃了:

我构建了一个特殊版本,其中包含一些额外的测试代码。在运行上述行失败后,它尝试运行一行:

这也失败了 - 可能是因为某些 Outlook 应用程序组件尚未安装。

我对可能确定解决方案的帖子进行了一些相当广泛的 Google 搜索,但没有找到任何合适的内容。一些帖子建议从安装工具运行 Office“修复”。

我向他们的技术人员提到了这一点,他做到了。有趣的是,当我随后检查(使用 RegEdit)时,它创建了更多的“Outlook.Application”和“Outlook.Application.16”注册表项。但是我们的软件在该测试版本中的“CreateObject”行和普通版本中的单个“CreateObject”行仍然失败。

他们的技术人员和我都完全迷惑了(现在已经超出了我们对 Office 365 安装和 Windows 的微软黑魔法的深度)。

以前有没有人遇到过这种情况,和/或可以建议我们从这里去哪里?


好的,原来的帖子有点长,我不想用太多的信息把它弄得乱七八糟。所以这里有一些进一步的信息:

回答尤金的问题:

  1. 使用 RegEdit,我搜索了整个注册表——其中一台无法运行的计算机,以及一台运行良好的计算机(加上我自己的,它也运行良好)。
  2. 他们的技术人员安装了最新的 64 位 365。如果我理解正确,初始安装是从 ISO 文件完成的。当这不起作用时,他再次尝试使用“在线”安装(我在这里成功使用过)。他再次使用“在线”安装进行“修复”。我没有当前的内部版本号,但如果相关的话,可以在本周晚些时候获得这些版本号。但它们应该是最新的。
  3. 不,我们自己无法在内部重现该问题,并且以前从未在任何其他客户站点看到它。
  4. 该站点在所有计算机上运行相同的防病毒软件(那些工作的和那些不工作的)。所以我怀疑这不是原因。

在这两台计算机上完美匹配的注册表项是:

可能很重要的事情:不工作的计算机上的 Windows 注册表有四个额外的键(不在工作的计算机中):

该计算机(不起作用)还有一个文件夹 C:\ProgramData\Packages\Microsoft.Office.Desktop.Outlook_8wekyb3d8bbwe\ ,其中包含 3 个子文件夹(具有系统生成的名称):

  • 第一个(创建于 2019 年)有一个空的子文件夹“\SystemAppData”。
  • 其他两个(都在 2020 年初具有相同的日期/时间)完全为空(即没有 SystemAppData 子文件夹)

我想知道这些钥匙是否会以某种方式造成恶作剧。下周初,我和技术人员计划备份这些密钥,然后删除它们。

有谁知道这些钥匙是干什么用的?(我找到了一个可能相关的博客: https ://blogs.windows.com/windowsdeveloper/2017/04/13/com-server-ole-document-support-desktop-bridge/ 不过话说回来,可能不是.)