自从我升级到Indy10后,我已经注意到,如果没有显式的回复报头,接收到的路径上的ReplyTo字段(Msg.ReplyTo[0].Address)似乎会被来自Return-path报头的地址填充。我的期望是,如果没有reply-to标头,则Msg.ReplyTo.Count应该为零。这里发生了什么事?这是一个bug吗?设计变更?还有别的吗?我如何判断邮件是否有单独的回复地址,或者我是否应该回复" from“字段中的地址?让它回复回执地址似乎给出了我自己的电子邮件的一个屠宰版本,不是很有用。
我的现有逻辑(不适用于没有回复地址的消息)如下所示:
if Msg.ReplyTo.Count>0 then
FReplyTo := Msg.ReplyTo[0].Address
else
FReplyTo := Msg.From.Address;发布于 2013-06-13 04:37:34
在解析电子邮件时,TIdMessage.ReplyTo首先查看Reply-To标头,如果为空/缺少,则查看Return-Path标头。如果您想知道Reply-To本身是否为空/丢失,则必须手动查看TIdMessage.Headers.Values['Reply-To']。
再仔细考虑一下,并研究一下Reply-To和Return-Path的实际工作原理,从TIdMessage.ReplyTo属性中删除Return-Path可能是有意义的,所以我现在做了这个更改。
https://stackoverflow.com/questions/17073811
复制相似问题