使用 C# 防止反病毒阻止外发电子邮件

Posted

技术标签:

【中文标题】使用 C# 防止反病毒阻止外发电子邮件【英文标题】:Prevent Anti-Virus to block outgoing email with C# 【发布时间】:2010-07-07 13:14:27 【问题描述】:

我有一个带有静态类的应用程序,该类捕获运行时发生的所有错误(如果是这种情况),当处理完成时,它会发送一封包含错误列表的电子邮件,以便我或任何其他开发人员可以解决这些错误。

但是我的问题是 McAfee 阻止了请求,就好像它是一种病毒一样。我没有权限在我的机器上编辑 McAfee 设置,是否可以通过 C# 代码修复它?

谢谢

【问题讨论】:

【参考方案1】:

可能 McAfee 阻止了端口 25 (SMTP) 上的传出连接,只允许白名单的应用程序发送电子邮件。

你可以做的是:

将电子邮件放入 mailto:// url。像普通命令行一样执行 mailto://。这将要求用户输入,但您可以为用户创建一个不错的模板。 (syntax) 通过您的普通电子邮件客户端(Outlook、Notes)发送电子邮件,如果他们有相应的 API。 使用具有 API 的基于 Http/Web 的提供程序。公开的也可能被 McAfee 阻止。但是您可以自己创建和托管服务。请非常小心,只允许来自公司内部的流量。 也许您的公司有一个“投递文件夹”,您可以在其中投递电子邮件服务器接收的电子邮件。

【讨论】:

第一个项目符号可能是一个很好的解决方案,但是,我不希望前景打开。有没有一种方法可以在执行 mailto: 时即时发送电子邮件。 好了,我挖掘了更多内容以便通过 Outlook 发送它,它运行良好。 keithelder.net/blog/archive/2007/01/11/…【参考方案2】:

根据 McAfee 标记它的内容/原因,您很可能无法绕过它。

您需要查看是否可以查明 McAfee 是否由于正在使用的端口而对其进行标记,或者是否有任何其他信息说明单个消息未发送的原因。

【讨论】:

异常抛出并不是很有帮助。但我知道它的 mcafee,在我可以在注册表中禁用它的另一台计算机上,它可以工作。 我的猜测是 McAfee 正在阻止 SMTP 端口,因为它不希望您的应用程序发送消息。 不修改规则就不行【参考方案3】:

没有。是的。

不,如果您的意思是这样,您不能强制 McAffee 不从代码中标记您的电子邮件。

是的,您可以阻止 McAffee 或其他病毒扫描程序将您的电子邮件标记为可疑。以下是我尝试确保的几件事:

您的所有地址(尤其是来自:和回复:)都是有效的。

您发送的姓名实际上是您活动目录中正确人员的姓名。

您还可以要求您的系统管理员将您的“发件人:”地址放在全局白名单中,以便它始终发送给客户端。

您是否附加了可执行文件?你确定你没有附加任何病毒? ;-)

【讨论】:

没有任何附件。我尝试将 from 和 replyto 更改为有效地址,但仍然无效。 “邮件发送失败”。我已经在另一台可以禁用 mcafee 的计算机上尝试过它并且它可以工作。还有其他想法吗? 有没有我可以用来绕过这个的 COM 解决方案? 不。听起来您需要询问 McAffee 支持或您的系统管理员到底发生了什么...【参考方案4】:

据我回忆,我认为 McAfee 有一个允许发送电子邮件的程序列表,如果您的程序未添加到此列表中,那么您的电子邮件将不会被发送。

这是一个很大的支持问题,因为您会发现您的客户有 101 个不同的病毒检查程序,它们都以不同的方式设置。

您可以将电子邮件服务器设置为使用非标准端口,然后将电子邮件发送到该端口。

对于测试,使用调试器附加到 McAfee 进程然后将其终止可以正常工作...

【讨论】:

以上是关于使用 C# 防止反病毒阻止外发电子邮件的主要内容,如果未能解决你的问题,请参考以下文章

Exchange反垃圾解决方案Proxmox Mail Gateway!

防病毒软件正在阻止 nodemailer - 错误:证书链中的自签名证书

防病毒误报?

Linux sendmail到底怎么往外发邮件

c#如何防反编译

拦截所有 Joomla 外发电子邮件并将它们重新路由到指定地址