首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >正在发送邮件,但没有message-id

正在发送邮件,但没有message-id
EN

Stack Overflow用户
提问于 2010-12-21 14:38:07
回答 2查看 2.4K关注 0票数 3

当我用indy-10的tidMessage组件发送邮件时,我从我的客户邮件服务器得到了有趣的拒绝:

550被拒绝:消息不包含Message-ID

我甚至在使用indy自己的演示应用程序时也会得到这个结果

http://www.indyproject.org/DemoDownloads/Indy_10_MailClient.zip

我该怎么做才能解决这个问题。谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-12-21 18:09:10

在将电子邮件编码为套接字或TStream时,Indy 10中的TIdMessage会故意省略“Message-Id”标头。您必须使用TIdMessage.ExtraHeaders属性,例如:

代码语言:javascript
复制
IdMessage1.MsgId := ...';
IdMessage.ExtraHeaders.Values['Message-Id'] := IdMessage1.MsgId;

编辑:

作为后续- TIdMessage现在已经更新了处理"Message-ID“和" in -Reply-To”标头的逻辑变化:

http://indyproject.org/sockets/blogs/changelog/20160912.aspx

TIdMessage.MsgId属性现在生成一个"Message-ID“标头,而不管电子邮件是被保存、流式传输还是被传输。因此,您不再需要使用ExtraHeaders属性。

票数 4
EN

Stack Overflow用户

发布于 2010-12-21 14:56:52

它适用于Indy9,也许10年来事情并没有太多变化:

代码语言:javascript
复制
    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
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4496821

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档