小编And*_*y_D的帖子

在 Delphi 中发送带附件的电子邮件

如何在 HTML 格式的电子邮件中发送附件?

我设法使用 stmp.gmail.com 以 HTML 格式发送电子邮件,但我的电子邮件有一个附件。附件被转换为字符串,但我需要它是原始文件格式。

代码:

with FIdSmtp do
begin
  // Configure IdSMTP
end;

FIdMessage.Clear;
FIdMessage.MessageParts.Clear;
FIdMessage.From.Address := 'EmailRemetente';
FIdMessage.From.Name    := 'Apelido';
FIdMessage.Subject      := 'Assunto';
FIdMessage.Body.Text    := 'Mensagem';
FIdMessage.Recipients.EMailAddresses := 'aEmailDestinatario'; //email destino  
FIdMessage.BccList.EMailAddresses := StringReplace(Trim(BCCList.Text),#13#10,',',[rfReplaceAll]);  
FIdMessage.ccList.EMailAddresses := StringReplace(Trim(CCList.Text),#13#10,',',[rfReplaceAll]);
FIdMessage.ContentType := 'text/html';  // set html format

_Anexo := TStringList.Create;
try
  _Anexo.Text := aAnexos;
  for i := 0 to _Anexo.Count - 1 do
    TIdAttachmentFile.Create(FIdMessage.MessageParts,_Anexo.Strings[i]);
finally
  _Anexo.Free
end;    
FIdSmtp.Send(FIdMessage);
Run Code Online (Sandbox Code Playgroud)

有人能帮我吗?

html delphi smtp email-attachments

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

FileSize函数的问题

我试图使用system.filesize函数来获取delphi中的文件大小,它适用于文件<4GB但文件> 4GB失败.所以我实现了我自己的,打开所需的文件作为文件流,并获得完美的streamize.

这是一个片段

   function GiveMeSize(PathtoFile : string): int64;
   var
     stream : TFileStream;
     size : int64;
   begin
     try
       stream := TFileStream.Create(PathtoFile, fmOpenReadWrite or fmShareDenyNone);
       size := stream.size;     
     except
       showmessage('Unable to get FileSize');
     end
     finally    
       stream.free;
   end;
Run Code Online (Sandbox Code Playgroud)

但我上面的函数的问题是它打开文件,在处理大量文件时会产生一些开销.是否有任何功能可以获得文件大小> 4GB的文件而无需先打开文件?我已经尝试了一些在线功能,但他们倾向于报告大于4GB的文件的错误文件大小.

德尔福版:XE5

谢谢.

delphi

2
推荐指数
1
解决办法
2306
查看次数

标签 统计

delphi ×2

email-attachments ×1

html ×1

smtp ×1