在delphi 2009的發郵件中文會出現亂碼
問題出現的原因估計是由unicode引起的
決解方未法
郵件的正文部分:
IdMessage1.ContentTransferEncoding := 'base64';
Subject部分
vsubject := format('=?BIG5?B?%s?=', [vsubject]);
IdMessage1.Subject := vsubject;/
要引用EncdDecd單元
ss := EncodeString('您好');
showMessage(ss);
ss := UTF8Decode(DecodeString('QUQg5ZOBwrfoh7Qg5qCH6Ie055Sf5rS7IDHmnIg='));
ss := DecodeString('QUQg5ZOBwrfoh7Qg5qCH6Ie055Sf5rS7IDHmnIg=');
showMessage(ss);
Example:
procedure TForm1.Button2Click(Sender: TObject);
var ss, capt:string;
begin
capt := EncodeString('郵件主題');
ss := format('=?BIG5?B?%s?=', [capt]);
with IdMessage1 do
begin
Clear;
From.Text := 'lk@yy3.yydg.com.cn';
Recipients.EMailAddresses:= 'lk@yy3.yydg.com.cn';
CharSet:='big5';
Date:=Date;
Subject := ss;
Body.Text:='正文';
ContentTransferEncoding := 'base64';
end;
IdSMTP1.Host:='127.0.0.1';
IdSMTP1.Port := 25;
IdSMTP1.Connect;
IdSMTP1.Send(IdMessage1);
end;