我正在使用 Indy 从 Android 设备发送一个 .txt 文件作为附件。
当我下载此文件时,.txt 文件的编码已从 UTF-8 更改为 ANSI,并在彼此相邻的行中显示其内容,而不是在彼此下方。
那么我做错了什么,如何解决这个问题?
用于发送邮件的功能代码:
Body := TStringList.Create;
IdSMTP := TIdSMTP.Create(nil);
SSLHandler:= TIdSSLIOHandlerSocketOpenSSL.Create(Form1);
IdSMTP.IOHandler:= SSLHandler;
IdSMTP.UseTLS:= utUseExplicitTLS;
IdSMTP.Host := 'smtp.gmail.com';
IdSMTP.Port := 587;
IdSMTP.AuthType := satDefault;
IdSMTP.Username := AppData.MailAddrSender;
IdSMTP.Password := Appdata.MailPassword;
IdMessage := TIdMessage.Create(nil);
IdMessage.From.Name := aName;
IdMessage.From.Address := AppData.MailAddrSender;
IdMessage.Subject := 'E-mail subject';
PathString := System.IOUtils.TPath.Combine(System.IOUtils.TPath.GetDocumentsPath, (PathString + 'Log.txt'));
Body.Add('Mail todays log,');
if FileExists(PathString) then
TIdAttachmentFile.Create(IdMessage.MessageParts,PathString);
try
for I := 0 to Body.Count -1 do
IdMessage.Body.Add(Body.Strings[I]);
IdEmailAddressItem := IdMessage.Recipients.Add;
IdEmailAddressItem.Address := AppData.MailAddrReceiver;
try
IdSMTP.Connect;
try
if IdSMTP.Authenticate then
IdSMTP.Send(IdMessage);
finally
IdMessage.Free;
IdSMTP.Disconnect;
end;
except
on E: Exception do
//exception handling here
end;
finally
IdSMTP.Free;
SSLHandler.DisposeOf;
Body.DisposeOf;
end;
感谢您的时间。