使用具有多个CC的Indy发送电子邮件。如果一个不正确,则没有人收到邮件

时间:2016-04-28 09:52:07

标签: email delphi indy indy10

我目前正在为我的公司设置一个小工具,用于向特定用户组发送信息邮件。 但是,如果一个或多个电子邮件地址不正确(缺少字母等),我会收到以下错误,并且根本不会发送电子邮件:

EIdSMTPReplyError

未采取请求的操作:邮箱不可用 无效的DNS MX或A / AAAA资源记录

我设置了这样的电子邮件:

  • 将第一封电子邮件添加为主要收件人
  • 将所有其他内容添加到cclist

有没有办法设置电子邮件,以便至少其他收件人收到电子邮件?

一些信息:

  • Delphi 7
  • Indy 10

提前致谢< 3

1 个答案:

答案 0 :(得分:6)

TIdSMTP有一个OnFailedRecipient事件:

type
  TIdSMTPFailedRecipient = procedure(Sender: TObject; const AAddress, ACode, AText: String;
    var VContinue: Boolean) of object;

AAddress是电子邮件地址,ACodeAText包含错误详情。

如果VContinue设置为True(分配OnFailedRecipient时的默认值),则会跳过失败的电子邮件并尝试下一个收件人。

如果出现以下情况,则会引发EIdSMTPReplyError异常:

    收件人失败时未分配
  • OnFailedRecipient

  • VContinue设置为False。

  • 所有收件人都失败,无论OnFailedRecipient