问题标签 [exchange-transport-agents]

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 回答
514 浏览

c# - Exchange Server 2007 传输代理问题

这是我第一次从事 Exchange Server 开发工作。下面是我正在使用的一个简单的传输代理,该代理应该简单地更新电子邮件主题,如下面的代码所示。

下面是我用来安装代理的 Powershell 脚本。

使用 Exchange 命令行管理程序成功安装代理。

现在,当我发送/接收电子邮件作为交换时,电子邮件主题不会被修改。电子邮件有其原始主题。我不知道为什么?

我还执行了以下链接中提到的步骤来调试代理,但 Visual Studio 调试器没有命中断点。

http://www.sf-tools.net/Messaging/tabid/55/EntryId/163/Exchange-2010-Transport-Agent.aspx

调试 MS Exchange 2007 传输代理

http://omarjames.com/blog/index.php/debugging-exchange-transport-agent/

我的系统配置

我正在使用 Microsoft 从以下链接提供的 Exchange Server 2007 虚拟机

我还在 VM 上安装了 Visual Studio 2008 进行调试。

请帮我解决问题?

0 投票
1 回答
103 浏览

exchange-server - Exchange Server 更新传入消息

最新版本(或旧版本)是否支持某种自定义插件(插件模块?),可以编写以分析传入消息并可能用占位符或我们创建的一些新消息替换传入消息?

我想另一种方法可能是构建一个文件夹观察程序来查找传入的消息文件(这将是交换消息)然后替换这些消息?

我不是 Exchange 专家,所以如果有更好的方法,我会全力以赴。我们有一个 .NET 程序集,可以分析 Outlook 插件使用的内容。我只是好奇是否有一种方法可以做一个服务器端模块,它可以对传入消息执行与我们对传出消息执行相同的操作.

0 投票
3 回答
1445 浏览

c# - 以编程方式安装传输代理 (Exchange)

是否可以在 C# 程序中将传输代理安装到 Exchange Server?

通常您创建代理 .dll,然后您需要打开 Exchange 命令行管理程序并执行以下命令:

Install-TransportAgent -Name "Agent Name" -TransportAgentFactory "Factory.Class.Name" -AssemblyPath "C:\Path\to\agent.dll"

enable-transportagent -Identity "Agent Name"

并设置优先级:

Set-TransportAgent -Identity "Agent Name" -Priority 3

如何从 C# 应用程序中安装传输代理(调用 PowerShell 命令或直接使用 .NET Framework?

0 投票
1 回答
101 浏览

exchange-server - 传输代理是否会在 2013 年交换发生日记之前执行?

我目前正在研究一个新系统的概念证明,但它基于在日志发生之前执行的传输代理。

我的问题是:将文本添加到所有消息的主题的传输代理会在日志记录执行之前发生吗?

谢谢

0 投票
2 回答
663 浏览

exchange-server - Exchange 2010 传输代理 - 重写回复标头

看起来 MailItem.Message.ReplyTo 属性是只读的。任何人都知道将Mailitem.Message 中的ReplyTo 设置为新地址的方法吗?

使用 Exchange 2010 传输代理处理我们的 Exchange 2010 通讯组的一些 dmarc 问题。我可以更改 From 标头并发送我们的 DG 电子邮件,但如果可以将 ReplyTo 标头更改为原始电子邮件地址,我们的收件人将能够直接回复,而不必复制并粘贴我添加到的原始电子邮件地址电子邮件的正文。

0 投票
1 回答
83 浏览

c# - 自定义传输代理 - 在邮箱中保存电子邮件

我正在用 C# 开发一个自定义传输代理。为此,我正在使用 microsoft exhange server 2010。每当收到电子邮件时,我需要根据某些条件决定是否允许发送。如果它不应该被允许,我将整个电子邮件(.eml)作为 blob 存储在数据库中。现在我不想使用数据库来保存被拒绝的电子邮件。我想将这些电子邮件保存在某个邮箱中。我想知道是否可以将电子邮件重定向到邮箱?

0 投票
1 回答
280 浏览

python - 收听 Exchange 服务器并捕获每条新邮件

我需要我的交换服务器来捕获它收到的每封新邮件并在其上运行一些自定义代码。我已经阅读了有关传输代理、EWS 和 ADO 的信息,但找不到一个清晰、有效的示例。

0 投票
1 回答
1150 浏览

c# - Exchange 2013 传输代理为内部和外部收件人发送单独的电子邮件

我们目前正在通过概念验证来创建一个从Microsoft.Exchange.Data.Transport.Routing.RoutingAgent. 我们使用该OnResolvedMessage事件将电子邮件重新路由到我们的外部电子邮件服务器(非 Exchange 服务器)。这一切都很好,我们可以将电子邮件重新路由到外部服务器。但是,如果一封电子邮件同时包含内部和外部收件人,则该电子邮件将被拆分为两封单独的电子邮件,并导致两封电子邮件发送到外部电子邮件服务器。虽然两封电子邮件包含相同的内容,只是不同的 RCPT TO 标头,但这将导致外部电子邮件服务器两次处理相同的电子邮件,这对于我们的项目来说是不理想的。

这是我第一次创建传输代理,我正在尝试确定是否需要更改交换服务器的某些设置以阻止满足此条件的电子邮件被拆分为多个电子邮件?

我们的传输代理的主要目标是允许外部电子邮件服务器处理发往内部收件人的电子邮件,因为它们目前将未经处理地放入内部用户的邮箱。这可能与我们的发送/接收连接器有关,任何关于这些问题的任何问题的指导将不胜感激。如果路由代理不是此问题的正确解决方案,我们对其他可能性持开放态度。

我们的事件处理程序的片段:

0 投票
1 回答
543 浏览

c# - 内部收件人的 Exchange 2010/2013 TransportAgent 内容转换

我正在尝试创建一个TransportAgent将内部电子邮件重新路由到远程服务器以进行进一步处理的电子邮件,但电子邮件以 Microsoft 的内部 TNEF 格式发送(未应用内容转换)。我希望它的格式与电子邮件发送给外部收件人时使用的格式相同。

我目前正在使用 aRoutingAgent将内部电子邮件重新路由到远程服务器。如果有人可以根据分类器的管道解释为什么会发生这种情况,那也会非常有帮助,即使我无法避免。此代理将为 Exchange 2010 和 2013 实施,以防答案因 Exchange 版本而异。

0 投票
1 回答
778 浏览

c# - Exchange 路由代理检测电子邮件方向

我们有一个 Exchange Trasport Agent,它专门是一个 RoutingAgent。如果OnSubmittedMessage我们需要检查MailItem并确定它是出站还是入站。我目前正在考虑使用该SmtpServer.AcceptedDomains属性来检查发件人电子邮件是否在接受的域列表中。这是我们如何尝试执行此操作的示例:

我对接受域不是非常熟悉,我想了解这是否是可靠地确定电子邮件方向的可行解决方案?此方案还需要适用于在其 Exchange 组织设置中包含多个域的公司。请注意,如果有任何不同,我们计划支持 Exchange 2010-2016。

- 编辑 -

从@GlenScales 获得一些帮助后,我意识到我需要稍微更新一下我的问题。

我的目标是确定电子邮件的发件人是否在 Exchange 组织内部的域中。这也可以通过确定电子邮件是否在 Exchange 中生成来实现,我们能够在稍后阶段检查收件人,看看它是入站还是出站。

话虽如此,我们研究了 3 种可能的解决方案:

  1. 根据接受域列表检查发件人域
  2. 使用地址簿检查发件人是否是内部的
  3. 检查 InboundDeliveryMethod 属性并查看它是否是从邮箱创建的

最后,我们决定我们真的想检查仅从邮箱生成的消息并使用#3。#1 听起来它可能包含实际上只是“转发”域的域,我们不想在我们的应用程序中考虑这些消息。