Кодировка в при отправке почты в делфи

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by bertys, 22 Aug 2012.

  1. bertys

    bertys New Member

    Joined:
    25 Jan 2012
    Messages:
    162
    Likes Received:
    0
    Reputations:
    0
    Подскажите как правильно отправить письмо, В отправителе вместо русских букв пишется чтонибудь

    PHP:
    attach:= TidAttachment.Create(nil);
    smtp:=tidsmtp.Create(nil);
     
    mes:=TIdMessage.Create(Form1);
      
    smtp.Host:='SMTP.mail.ru';   //Здесь меняете хост ,если нада
      
    smtp.Port:=2525;
      
    smtp.AuthenticationType:=atLogin;
      
    smtp.Username:='[email protected]';
      
    smtp.Password:='pass';
      
    smtp.HeloName:='Programm';
    with mes do
      
    begin
        CharSet
    :='windows-1251';
        
    Body.Add('Это сообщение');
        
    From.Address:='[email protected]';
        
    From.Name:='Василий Пупкин';
        
    Recipients.EMailAddresses:='[email protected]';
        
    IsEncoded:=True;
        
    ExtraHeaders.Add('Subject: Какая то тема письма');
        
    ContentType := 'text/plain';
      
    end;
    // attach:= TIdAttachment.Create(mes.MessageParts,'C:\attach.rar');
      
    smtp.Connect;
      
    SS:=TStringStream.Create('');
      
    mes.SaveToStream(ss);
      
    memo1.text:=SS.DataString;
      If 
    smtp.Connected Then smtp.Send(mes);
      
    smtp.Disconnect;
      
    attach.Free
    end
    ;
     
  2. patcher

    patcher Banned

    Joined:
    15 Dec 2009
    Messages:
    190
    Likes Received:
    37
    Reputations:
    10
    версия делфи и что вместо нужного текста получается? извини, экстрасенсы все в отпуск ушли
     
  3. bertys

    bertys New Member

    Joined:
    25 Jan 2012
    Messages:
    162
    Likes Received:
    0
    Reputations:
    0
    Делфи 7
    Тема и текст норм, а отправитель вместо "Василий Пупкин" приходит: Âàñèëèé Ïóïêèí
     
  4. patcher

    patcher Banned

    Joined:
    15 Dec 2009
    Messages:
    190
    Likes Received:
    37
    Reputations:
    10
    Code:
    uses ..., IdCoderHeader;
    .....
    var C: CSET; h:TTransfer;
    ....
     attach:= TidAttachment.Create(nil);
    smtp:=tidsmtp.Create(nil);
     mes:=TIdMessage.Create(Form1);
      smtp.Host:='SMTP.mail.ru';   //Здесь меняете хост ,если нада
      smtp.Port:=2525;
      smtp.AuthenticationType:=atLogin;
      smtp.Username:='[email protected]';
      smtp.Password:='pass';
      smtp.HeloName:='Programm';
    with mes do
      begin
        CharSet:='windows-1251';
        Body.Add('Это сообщение');
        From.Address:='[email protected]';
        From.Name:=EncodeHeader('Василий Пупкин',C,'Q',h,'windows-1251');
        Recipients.EMailAddresses:='[email protected]';
        IsEncoded:=True;
        Subject:=EncodeHeader('Какая то тема письма',C,'Q',h,'windows-1251');
        ContentType := 'text/plain';
      end;
    // attach:= TIdAttachment.Create(mes.MessageParts,'C:\attach.rar');
      smtp.Connect;
      SS:=TStringStream.Create('');
      mes.SaveToStream(ss);
      memo1.text:=SS.DataString;
      If smtp.Connected Then smtp.Send(mes);
      smtp.Disconnect;
      attach.Free
    end;