小编Ada*_*son的帖子

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

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

我找到了以下主题(来自2011年)Remy Lebeau声明您可以通过使用以下Name方法将TIdMessageBuilderAttachment对象附加到电子邮件时设置对象的属性来实现此目的TIdMessageBuilderHtml:

如何命名由TIdMessageBuilderHtml构造的附件文件

然而,听起来很简单,它似乎对我不起作用.电子邮件通过,但附件是原始文件名,而不是我指定的文件名.

以下是我希望按照我的描述进行的代码片段,但无论出于何种原因,它都没有.在这种情况下,我希望文件名通过desired_filename.pdf,但它来自as 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 := …
Run Code Online (Sandbox Code Playgroud)

delphi smtp indy

4
推荐指数
1
解决办法
1249
查看次数

标签 统计

delphi ×1

indy ×1

smtp ×1