В очередной раз бьюсь над кодировкой, только в этот раз отправленных писем. За основу взял статью 
http://adm.rayfin.aksay.ru/otpravka-pisma-i-problemy-kodirovki.html и эту статью 
http://www.webdelphi.ru/2010/03/synapse-v-delphi-otpravka-pisem-s-vlozheniyami/В итоге у себя получил следующий код:
- Код: Выделить всё
- Procedure TForm3.SendMail (Host,Subject,mTo,From,TextBody,HTML,login,password:string);
 var Msg:TMimeMess;
 tmpStringList:TStringList;
 MsgPart:TMimePart;
 begin
 Msg := TMimeMess.Create;
 tmpStringList:=TStringList.Create;
 IdealCharsets:=[CP1251];/////////////////////////////
 try
 // Headers
 Msg.Header.Subject:=Subject;
 Msg.Header.From:=From;
 Msg.Header.ToList.Add(mTo);
 // MIMe Parts
 MsgPart:=Msg.AddPartMultipart('alternate',nil);
 if length(TextBody)>0 then
 begin
 tmpStringList.Text:=AnsiToUtf8(TextBody);////////////////////
 //Msg.AddPartText(tmpStringList,MsgPart);
 Msg.AddPartTextEx(tmpStringList,MsgPart,UTF_8,false,ME_BASE64);/////////////////////////
 end
 else
 begin
 tmpStringList.Text:=AnsiToUtf8(HTML);
 Msg.AddPartHTML(tmpStringList,MsgPart);
 end;
 if Form3.Edit9.Text<>'' then
 Msg.AddPartBinaryFromFile(Form3.Edit9.Text,MsgPart);
 // кодируем и отправляем
 Msg.EncodeMessage;
 if smtpsend.SendToRaw(From,mTo,Host,Msg.Lines,login,password)   then
 ShowMessage('Письмо отправлено')
 else  ShowMessage('Письмо не отправлено');
 finally
 Msg.Free;
 tmpStringList.Free;
 Form3.Close;
 end;
 end;
По английски все отлично, а кириллицу не понимает.
Добавлено спустя 1 час 58 минут 30 секунд:Re: Кодировка принятых и отправленных писем. Synapse.Появились подвижки: тема письма и отправитель стали читабельны после того как прописал Msg.Header.CharsetCode:=UTF_8; , а с текст  сообщения походу отправляется все таки в UTF-8 но почтовый сервер думает почему то, что в  CP1251.
Добавлено спустя 8 минут 29 секунд:Re: Кодировка принятых и отправленных писем. Synapse.tmpStringList.Text:=AnsiToUtf8(TextBody); AnsiToUtf8-точно лишнее
Добавлено спустя 5 минут 27 секунд:Re: Кодировка принятых и отправленных писем. Synapse.О вроде получилось: надо строчку поменять вот эту: Msg.AddPartTextEx(tmpStringList,MsgPart,UTF_8,true,ME_BASE64);
Добавлено спустя 13 минут 8 секунд:Re: Кодировка принятых и отправленных писем. Synapse.Рабочий вариант:
- Код: Выделить всё
- Procedure TForm3.SendMail (Host,Subject,mTo,From,TextBody,login,password:string);
 var Msg:TMimeMess;
 tmpStringList:TStringList;
 MsgPart:TMimePart;
 begin
 Msg := TMimeMess.Create;
 tmpStringList:=TStringList.Create;
 IdealCharsets:=[UTF_8];
 try
 // Headers
 Msg.Header.Subject:=Subject;
 Msg.Header.From:=From;
 Msg.Header.ToList.Add(mTo);
 // MIMe Parts
 MsgPart:=Msg.AddPartMultipart('alternate',nil);
 if length(TextBody)>0 then
 begin
 tmpStringList.Text:=TextBody;
 Msg.AddPartTextEx(tmpStringList,MsgPart,UTF_8,true,ME_BASE64);
 end
 else
 begin
 tmpStringList.Text:='--';
 Msg.AddPartTextEx(tmpStringList,MsgPart,UTF_8,true,ME_BASE64);
 end;
 if Form3.Edit9.Text<>'' then
 Msg.AddPartBinaryFromFile(Form3.Edit9.Text,MsgPart);
 Msg.Header.CharsetCode:=UTF_8;
 // кодируем и отправляем
 Msg.EncodeMessage;
 if smtpsend.SendToRaw(From,mTo,Host,Msg.Lines,login,password)   then
 ShowMessage('Письмо отправлено')
 else  ShowMessage('Письмо не отправлено');
 finally
 Msg.Free;
 tmpStringList.Free;
 Form3.Close;
 end;
 end;