delphi - 回复 Indy 10 中的地址?

标签 delphi indy10

自从我升级到 Indy10 以来,我注意到收到的 TIdMessage 上的 ReplyTo 字段 (Msg.ReplyTo[0].Address) 似乎被填充为来自如果不存在对 header 的显式回复,则返回路径 header 。我的期望是,如果没有回复 header ,Msg.ReplyTo.Count 应为零。这里发生了什么?这是一个错误吗?设计改变?还有别的事吗?我如何判断该邮件是否有单独的回复地址,或者我是否应该从“发件人”字段回复该地址?让它回复回信地址似乎给出了我自己的电子邮件的屠宰版本,不是很有用。

我现有的逻辑(不适用于没有回复地址的消息)如下所示:

if Msg.ReplyTo.Count>0 then
  FReplyTo := Msg.ReplyTo[0].Address
else
  FReplyTo := Msg.From.Address;

最佳答案

解析电子邮件时,TIdMessage.ReplyTo 首先查看 Reply-To header ,如果为空/缺失,则查看 Return-Path header 。如果您想知道 Reply-To 本身是否为空/缺失,则必须查看 TIdMessage.Headers.Values['Reply-To']手动。

仔细考虑一下,并研究一下 Reply-ToReturn-Path 的实际工作原理,删除 Return-Path 可能是有意义的 来自 TIdMessage.ReplyTo 属性,所以我现在已经进行了更改。

关于delphi - 回复 Indy 10 中的地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17073811/

相关文章:

delphi - 带有登录名/密码的 Indy TIdHTTP URI 不起作用

json - TIdHttp POST仅返回期望使用json的XML

delphi - 使用 Delphi 从 Indy 9 迁移到 10,TIdSchedulerOfThreadPool 初始化

delphi - 在后台 (kibitz) 编译器中跳过源代码

delphi - 子窗体定位如 StatusBar

Delphi 堆栈错位 + com 编码 = 错误编码

delphi - 使用 Indy http (idHTTP1.Get) 从 Delphi 2005 升级到 2010 后出现授权问题

delphi - 如何在Delphi中模拟TFrame上的OnDestroy事件?

delphi - 关于delphi引入进程信息的问题?

delphi - 通过Google SMTP发送电子邮件