【问题标题】:IMAP: Detecting all catch-all addresses that an email was sent toIMAP:检测电子邮件发送到的所有包罗万象的地址
【发布时间】:2015-02-08 19:28:11
【问题描述】:

设置

我目前正在使用 gmail轮询电子邮件发送到一个包罗万象的地址,其中 @ 之前的字符串必须由系统处理。

我使用 IMAP 进行集成。

我的后端在 .Net 中(不那么相关)

我的挑战

当在同一封邮件中向多个电子邮件地址写信时,例如1@foo.com、2@foo.com 和 3@foo.com,当所有捕获所有地址都在“To”字段中明确指定时,一切正常。在这种情况下,“To”标头包含所有地址。但是,当使用分发列表或使用密件抄送发送到 3 捕获所有地址时,无法查看邮件发送到的所有捕获所有地址。

人们将如何解决这个问题?我不需要使用 gmail - Exchange 也可以。我不想从头开始构建自己的邮件服务器/下载一些 C# 邮件服务器。

非常感谢您对此的任何意见!

编辑:正如建议的那样,这将在链的早期完成,并将通过按照建议编写一些自定义逻辑来解决。

【问题讨论】:

  • 您应该能够看到 Received 标头中的至少一个地址,或者可能会看到 Delivered-To 标头,具体取决于接收邮件的邮件系统。
  • Max:是的,我可以看到其中一个地址,但我需要完整列表:)

标签: c# email gmail imap server


【解决方案1】:

这些问题通常不使用 IMAP 解决,而是在链中的前一步,在 LDA 中解决。

本地交付代理,朋友之间的 LDA,是负责获取本地部分并将其映射到邮箱(或转发等)的软件。 LDA 有时将本地部分存储在存储的消息中,但并非总是如此。正如 Max 所说,如果已存储,您可以在 Received 或 Delivered-To 中找到它。

有些 LDA,我不知道是 10% 还是 50%,可以用一种叫做 Sieve 的语言进行编程。该语言有时用于解决我假设您遇到的问题。您可以检查您使用的任何软件是否支持该功能。

这是一个简单的 Sieve 示例:

if envelope "from" :is :domain "mailtjenester.no" {
    redirect "brenden@telemeny.com";
}

(这是一个垃圾邮件发送者,无论他们发给我什么,我都会转发给垃圾邮件公司的某个人。他可以为我取消订阅。)

【讨论】:

  • 还有 procmail,虽然这更像是一个 unix 的东西,在 .net 中并不常见,并且通常转发到程序。
  • 这将是解决方案,我猜。只需要知道解决问题是否是不必要的工作:)
猜你喜欢
  • 2015-08-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多