gpt4 book ai didi

delphi - 使用 TIdMessageBuilderHtml 设置电子邮件附件名称

转载 作者:行者123 更新时间:2023-12-03 15:21:59 24 4
gpt4 key购买 nike

我正在尝试使用 Delphi (D10S) 将 PDF 文档附加到电子邮件,并且我想将名称设置为文件系统上文件名称以外的名称。

我发现了以下线程(来自 2011 年),其中 Remy Lebeau 指出,您可以通过在将它们附加到电子邮件时设置 TIdMessageBuilderAttachment 对象的 Name 属性来实现此目的使用TIdMessageBuilderHtml:

How to name attachment files constructed by TIdMessageBuilderHtml

然而,虽然听起来很简单,但它似乎对我不起作用。电子邮件已发送,但附件以原始文件名发送,而不是我指定的文件名。

以下是我希望按照我所描述的方式执行的代码片段,但无论出于何种原因,它都没有执行。在本例中,我希望文件名显示为 desired_filename.pdf,但它显示为 undesired_filename.pdf。出于显而易见的原因,我删除了邮件服务器凭据:

procedure TForm4.Button1Click(Sender: TObject);
var
FMessageBuilder : TIdMessageBuilderHtml;
FSMTP : TIdSMTP;
FMessage : TIdMessage;
FAttachment : TIdMessageBuilderAttachment;
begin
FMessage := TIdMessage.Create();
FMessageBuilder := TIdMessageBuilderHtml.Create;
FSMTP := TIdSMTP.Create;

FAttachment := FMessageBuilder.Attachments.Add('c:\undesired_filename.pdf');
FAttachment.Name := 'desired_filename.pdf';
FMessageBuilder.FillMessage(FMessage);

FMessage.Sender.Address := '<Insert Sender Address>';
FMessage.Sender.Name := '<Insert Sender Name>';
FMessage.From.Address := '<Insert From Address>';
FMessage.From.Name := '<Insert From Name>';
FMessage.Recipients.EMailAddresses := '<Insert Recepient Address>';
FMessage.Subject := 'Attachment Test';

FSMTP.Host := '<Insert Mail Host>';
FSMTP.Username := '<Insert Username>';
FSMTP.Password := '<Insert Password>';
FSMTP.Connect;
FSMTP.Send(FMessage);
FSMTP.Disconnect;
end;

我已经在 D10S 和 XE 中对此进行了测试,两者的效果相同。你知道我做错了什么吗?

最佳答案

使用接受TStreamTIdMessageBuilderAttachments.Add重载并将TIdMessageBuilderAttachment.FileName属性设置为所需的名称对我来说很有效XE4Indy 10.6.0.4975。

stream := TFileStream.Create('c:\undesired_filename.pdf', fmOpenRead);
FAttachment := FMessageBuilder.Attachments.Add(stream, 'application/pdf');
FAttachment.FileName := 'desired_filename.pdf';

关于delphi - 使用 TIdMessageBuilderHtml 设置电子邮件附件名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35793092/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com