问题描述
在使用 Borland C++Builder 6 开发的应用程序中,我使用 TIdSMTP
和 TIdMessage
发送电子邮件。由于配置中常用邮件服务器的外部应用程序存在问题,我通过我的 Gmail 帐户定义连接数据如下:
Correo->From->Address = "******@******.org";
Correo->ReplyTo->EMailAddresses = "******@******.org";
Correo->From->Name = "*******";
Correo->Organization = "*******";
Enviar->Host = "smtp.gmail.com";
Enviar->Password = "******";
Enviar->Port = 465;
Enviar->Username = "******@gmail.com";
Enviar->UseTLS = utUseImplicitTLS;
SSLIOHandler->Port = 465;
SSLIOHandler->Host = "smtp.gmail.com";
SSLIOHandler->Destination = "smtp.gmail.com:" + IntToStr(SSLIOHandler->Port);
SSLIOHandler->SSLOptions->Method = sslvTLSv1_2;
SSLIOHandler->SSLOptions->Mode = sslmUnassigned;
电子邮件发送没有任何问题,但除了我发送到我的 Gmail 地址的副本之外,我还在检查这些。我已确认 Gmail 地址出现在 Return-Path
字段的邮件标题中。
我一直在寻找,至少在 BCB 6 的 Indy 10 中,我还没有找到如何修改该字段。我如何才能获得副本以仅到达 ReplyTo
的 TIdMessage
字段中指定的地址?
解决方法
TIdMessage.ReplyTo
属性对 Return-Path
标头没有影响。 ReplyTo
仅用于 Reply-To
标头,收件人使用该标头回复发件人。接收 SMTP 服务器根本不使用 Reply-To
标头。
Return-Path
标头由接收 SMTP 服务器使用发送客户端的 SMTP MAIL FROM
命令中指定的地址生成。您可以在 TIdMessage.Sender
和 TIdMessage.From
属性中(按该顺序)指定该地址,或者使用其他具有 TIdSMTP.Send()
参数的重载 AFrom
方法之一。