转发保留收件人的电子邮件(INDY 和 Delphi)
Forward Emails preserving recipients (INDY and Delphi)
我使用 TIdIMAP4 对象从 GMail 帐户检索电子邮件,并希望使用 TIdSMTP 将它们转发到另一个 (GMail-) 帐户,同时保留原始收件人列表。
我的方法是将目标地址添加为密件抄送以使其在目标中不可见,但是如何防止 SMTP 组件将其发送给列表中的所有其他收件人?然后他们会两次收到所有转发的邮件。
更新 1:
我没有使用 BCC,而是在发送语句中提供了目标地址
smtp.Send(msg,destination);
但邮件仍会发送给所有其他收件人。
默认情况下,TIdSMTP.Send()
会将电子邮件发送给 TIdMessage
的 Recipients
、CcList
和 BccList
属性中列出的所有收件人。
当您通过 POP3 或 IMAP 将电子邮件下载到 TIdMessage
时,Recipients
和 CcList
(但不是 BccList
)将从电子邮件的现有 To
和 CC
headers。
当您转发邮件时,如果您不想将邮件发送给邮件中指定的收件人,那么您可以调用 TIdSMTP.Send()
的重载版本,以收件人列表作为参数.这只会将电子邮件发送到该列表。例如:
var
forwardTo: TIdEmailAddressList;
begin
...
forwardTo := TIdEmailAddressList.Create;
try
// add desired recipients to forwardTo as needed, then...
smtp.Send(msg, forwardTo);
finally
forwardTo.Free;
end;
...
end;
我使用 TIdIMAP4 对象从 GMail 帐户检索电子邮件,并希望使用 TIdSMTP 将它们转发到另一个 (GMail-) 帐户,同时保留原始收件人列表。
我的方法是将目标地址添加为密件抄送以使其在目标中不可见,但是如何防止 SMTP 组件将其发送给列表中的所有其他收件人?然后他们会两次收到所有转发的邮件。
更新 1: 我没有使用 BCC,而是在发送语句中提供了目标地址
smtp.Send(msg,destination);
但邮件仍会发送给所有其他收件人。
默认情况下,TIdSMTP.Send()
会将电子邮件发送给 TIdMessage
的 Recipients
、CcList
和 BccList
属性中列出的所有收件人。
当您通过 POP3 或 IMAP 将电子邮件下载到 TIdMessage
时,Recipients
和 CcList
(但不是 BccList
)将从电子邮件的现有 To
和 CC
headers。
当您转发邮件时,如果您不想将邮件发送给邮件中指定的收件人,那么您可以调用 TIdSMTP.Send()
的重载版本,以收件人列表作为参数.这只会将电子邮件发送到该列表。例如:
var
forwardTo: TIdEmailAddressList;
begin
...
forwardTo := TIdEmailAddressList.Create;
try
// add desired recipients to forwardTo as needed, then...
smtp.Send(msg, forwardTo);
finally
forwardTo.Free;
end;
...
end;