Java 电子邮件截获技术

Java 电子邮件截获技术,java,email,smtp,zos,Java,Email,Smtp,Zos,我有一个要求,我打算建立一个工具来扫描电子邮件内容,包括附件。电子邮件服务器将是SendMail或z/OS通信服务器,两者都支持SMTP。服务器不是Miscrosoft实现,因此MAPI或Outlook API不在图片中。该工具将是基于Java的代码,基本上需要根据某些规则查找不允许的内容。我的选择是什么?有可能使用代理服务器,但我们正在寻找更直接的方法。z/OS Communication server SMTP实现具有内置的“退出”功能-请参阅 几乎所有SMTP活动都会调用出口,它可以根据您

我有一个要求,我打算建立一个工具来扫描电子邮件内容,包括附件。电子邮件服务器将是SendMail或z/OS通信服务器,两者都支持SMTP。服务器不是Miscrosoft实现,因此MAPI或Outlook API不在图片中。该工具将是基于Java的代码,基本上需要根据某些规则查找不允许的内容。我的选择是什么?有可能使用代理服务器,但我们正在寻找更直接的方法。

z/OS Communication server SMTP实现具有内置的“退出”功能-请参阅

几乎所有SMTP活动都会调用出口,它可以根据您建立的规则检查、更改或拒绝任何内容。它通常是用IBM汇编语言编写的,但是没有理由不能有一个薄的汇编层,它可以使用您喜欢的任何协议(比如,管道或套接字)将数据传递给Java应用程序

有许多小细节需要处理,例如字符编码(例如,EBCDIC与ASCII或UTF-8的比较)以及从电子邮件内容中剔除附件。但是使用出口保留了IBM SMPT服务器的所有z/OS特定功能,而不需要自己重新创建这些功能


祝你好运

您希望在客户端和服务器之间的哪一侧截获邮件?你能在服务器上安装软件吗?在服务器上。这样做的目的是防止邮件在工具检测到违反规则的情况下发出。如果您可以在服务器上安装该软件,则最好的选择是实施(或扩展)SMTP代理,该代理将扫描电子邮件,并根据您的规则集将邮件转发到真正的SMTP服务器或拒绝它。您确定不能将现有SMTP服务器配置为执行此操作。@stjepano我们可以执行此操作。这是我在问题中列出的选项之一,但我正在寻找更直接的方法,避免使用代理服务器。最好的方法是将规则集实现到现有SMTP服务器(无代理)。许多服务器允许这种扩展。如果可能的话,你也可以在客户机上实现规则。我想这正是我需要的,我会尝试一下。谢谢。很高兴能帮忙……最困难的部分是汇编语言出口本身。虽然IBM没有这样记录,但我相信他们的SMTP服务器实际上是一个C/C++程序……这意味着将有一个LE运行时与此过程相关联,因此如果您小心的话,您可能能够在C中退出,如果您不是一名硬核的汇编程序开发人员,那么这可能会使Java代码的开发变得不那么麻烦。