2013-03-27 133 views
-1

我想处理procmail收到的传入转发电子邮件,以获取转发(子)电子邮件的主题和收件人。Procmail处理转发电子邮件

例如:

  • 用户A收到一封电子邮件,从用户B
  • 用户A转发电子邮件到电子邮件服务器
  • 电子邮件服务器接收电子邮件,并提取用户B的电子邮件地址

是有执行这项任务的方法或配方吗?或者,我必须通过主电子邮件正文中的方式进行regex?

编辑:

通过要求,我将提供边界条件。 “UserA组”的电子邮件客户端是Gmail和Outlook。所有用户都以英文发送。 'UserB'是我控制下的自动代理。

我的一台服务器('用户B')向我的用户('UserA')发送自动电子邮件,他们应该将电子邮件转发给第二台服务器进行处理(以确认他们收到了自动电子邮件)。

因此,我假设没有一致的标题转发,并且我需要通过电子邮件将我的方式表达为提取我需要的数据。

回答

1

(这是不是一个真正的正确答案,但我不能在评论格式,所以这里去。)

取决于你所说的“前锋”的东西。如果您的意思是“在一个理智的电子邮件客户端中使用'前进'按钮”,它可能会以附件的形式出现(可能包含需要解码才能访问的内容传输编码)或者线上副本作为文本主体的原始信息;或者如果您的意思是“在破损的电子邮件客户端中使用”前进“按钮,例如来自 Mordor Redmond的任何内容,”还有一些可能的附加并发症。从技术上讲,一些客户也可能通过添加“Resent-to:”头来“转发”,否则只是逐字地重发原始消息。或者在某些现代客户端中,您可以将消息拖到新消息的组合窗格中,并使其显示为新消息的附件,可能通过用户控制包含消息的内容类型和编码以及附件的。

假设你结束了类似下面的...

From: UserA <[email protected]> 
To: [email protected] 
Subject: VB: Hi 

Hey, here is a message I received. 

-- User A 

---- Ursprungligt meddelande ---- 
Från: UserB [mailto:[email protected]] 
Till: UserA 
Ämne: Hi 
Datum: perjantai 13. lokakuuta 2012 23:45 

Here is the original message 

-- User B 

....表示真的不适合自动处理。你可以想出启发式方法,比如在分隔符之后标识“原始消息”分隔符和第一个(可能是本地化的和残缺的)“to:”字段,也许通过要求所有消息来自特定客户端的特定版本特定的区域设置,但在一般情况下,这不能可靠地解决。 (为了好玩,我构建了一个运行芬兰语系统设置的瑞典本地化示例;因此客户端的标签是瑞典语,但系统的日期是芬兰语。)

如果您可以编辑您的问题以包含转发邮件的示例以及可能的某些边界条件(它始终来自同一用户,她使用的客户端软件的版本和本地化可能不会更改等)我们可以尝试从那里拿走它。