Can someone help me please?
I want to send emails out that correctly display a £ sign in the text portion of the email but everything I have tried doesn't work properly.
I'm sure it'll be obvious from the following that I don't have much of a clue about character encoding, but I have assumed, rightly or wrongly, that the answer is to convert the text to UTF8 from whatever coding it may be in.
From posts I have read I have tried putting
{$modeswitch UnicodeStrings}
{$codepage utf-8}
at the top of the unit
and the other various attempts are commented out in the code below.
The amount I have been trying to send is £6.35
procedure Tbillform.emaildocbtnClick(Sender: TObject);
var
Result:Boolean;
Mime:TMimemess;
StrList : TStringList;
p: TMimepart;
s,t: string;
i:integer;
begin
if docemailtextlines.text <> '' then
if emailtitle.text <> '' then
begin
try
StrList := TStringList.Create;
Mime := TMimeMess.Create;
p := Mime.AddPartMultipart('mixed', nil);
{ for i := 0 to docemailtextlines.lines.count - 1 do
begin
if trim(docemailtextlines.lines) <> '' then
StrList.Add(UTF8Encode(docemailtextlines.lines));
end;}
//above causes Ã_£6.35
//Line below causes sigseg v
//StrList.Add(UTF8Encode(docemailtextlines.text));
{ for i := 0 to docemailtextlines.lines.count - 1 do
begin
if trim(docemailtextlines.lines) <> '' then
StrList.Add(AnsiToUTF8(docemailtextlines.lines));
end; }
//above causes Ã_£6.35
{ for i := 0 to docemailtextlines.lines.count - 1 do
begin
if trim(docemailtextlines.lines) <> '' then
StrList.Add(WinCPToUTF8(docemailtextlines.lines));
end; }
// same
// StrList.Add(ConvertEncoding(docemailtextlines.text, GuessEncoding(docemailtextlines.text),EncodingUTF8));
// ^ didn't work either
//Next line causes £6.35
StrList.Add(docemailtextlines.text);
StrList.Text := CP1252ToUTF8(StrList.Text);
//above line causes Ã_£6.35
Mime.Header.CharsetCode := synachar.UTF_8;
Mime.Header.From := smtpsenderco+' <'+smtpusername+'>';
Mime.Header.ReplyTo := smtpusername;
Mime.Header.ToList.Add(email.text);
Mime.Header.Subject := emailtitle.text;
Mime.AddPartBinaryFromFile(docdir+'Cash Sale '+docnum.text+'.pdf',p);
Mime.AddPartText(StrList,p);
Mime.EncodeMessage;
except
on E: Exception do
begin
Showmessage ('Error creating email');
Showmessage (E.Message);
end;
end;