Cru*_*ler 3 delphi indy indy10
当发送带有indy-10的tidMessage组件的邮件时,我从客户端邮件服务器得到了有趣的拒绝:
550已拒绝:消息不包含消息ID
即使使用indy自己的演示应用程序,我也能得到它
http://www.indyproject.org/DemoDownloads/Indy_10_MailClient.zip
我该怎么做才能解决这个问题.谢谢!
它与Indy9一起工作,也许事情在10中没有太多变化:
procedure AddMsgID(AMsg: TIdMessage);
var
id: AnsiString;
begin
id := GenerateUniqueMsgID;
AMsg.MsgId := id;
AMsg.AddHeader('Message-ID=' + id);
// AMsg.ExtraHeaders.Values['Message-ID'] := id;
end; // AddMsgID
Run Code Online (Sandbox Code Playgroud)
在将电子邮件编码到套接字或 TStream 时,Indy 10 中的 TIdMessage 有意省略“Message-Id”标头。您必须使用 TIdMessage.ExtraHeaders 属性,例如:
IdMessage1.MsgId := '...';
IdMessage1.ExtraHeaders.Values['Message-Id'] := IdMessage1.MsgId;
Run Code Online (Sandbox Code Playgroud)
编辑:
作为此的后续 -TIdMessage现在已经更新了如何处理“Message-ID”和“In-Reply-To”标头的逻辑更改:
TIdMessage.MsgId现在,无论电子邮件是否被保存、流式传输或传输,该属性都会生成“Message-ID”标头。因此您不再需要使用该ExtraHeaders财产。
| 归档时间: |
|
| 查看次数: |
2143 次 |
| 最近记录: |