Конференция "Начинающим" » Заголовок в Indy 'корявый'
 
  • ddd329 (06.04.11 15:22) [0]
    Отправляю письмо в Indy(Delphi 7), тело имеет нормальную кодировку, а вот заголовок нет, посмотрел похожие темы форума ничего толкого не нашел!
    Вот пример:
    class function TForm_Make_Email.Send_Email_2(fp_Senser, fp_Receiver,
     fp_Tema, fp_Email, fp_Path_File, fp_Login, fp_Password: string): boolean;
    var
     IdAttachment1:TIdAttachment;
    begin
    DataModule1.IdMessage1.Subject:=fp_Tema;//в электронной почте русские буквы будут неправильными
    DataModule1.IdMessage1.Body.Text:=fp_Email;
    DataModule1.IdMessage1.From.Text:= fp_Senser;
    DataModule1.IdMessage1.Recipients.Add.Text:=fp_Senser;
    //SysUtils.SysLocale.PriLangID := LANG_RUSSIAN;
    //IdMessage1.CharSet:='windows-1251';
    if fp_Path_File<>'' then IdAttachment1:=TIdAttachment.Create(DataModule1.IdMessage1.MessageParts,fp_Path_ File);
    DataModule1.IdSMTP1.AuthenticationType := atLogin;
    DataModule1.IdSMTP1.Host:=fp_Receiver;
    DataModule1.IdSMTP1.Username:=fp_Login;
    DataModule1.IdSMTP1.Password:=fp_Password;
    try
    DataModule1.IdSMTP1.Connect();
    except
    Result:=false;
    exit;
    end;
    try
    if DataModule1.IdSMTP1.Connected then
     DataModule1.IdSMTP1.Send(DataModule1.IdMessage1);
    except
    Result:=false;
    exit;
    end;
    Result:=true;
    DataModule1.IdSMTP1.Disconnect;
    end;
  • Dennis I. Komarov © (06.04.11 15:32) [1]
    А оно надо? (я про инди)
  • И. Павел © (06.04.11 15:48) [2]
    Рекомендую ознакомиться с этой веткой:
    http://pda.delphimaster.net/?id=1297153035&n=3

    Проблему с заголовком, конечно, можно решить изменением кодировки, но потом пойдут проблемы с русскими именами прикрепленных файлов и т.д. Так что, ИМХО, лучше сразу перейти с Indy на что-нибудь другое.
  • Игорь Шевченко © (06.04.11 15:55) [3]

    > Так что, ИМХО, лучше сразу перейти с Indy на что-нибудь
    > другое.


    Или руки выпрямить. Тоже способствует
  • И. Павел © (06.04.11 16:03) [4]

    > Или руки выпрямить. Тоже способствует

    Лично я долго мучился с ИНДИ. А альтернативные библиотеки сразу выдали нужный результат и без всяких заморочек.


    > ddd329   (06.04.11 15:22)

    Как вариант - можно еще попробовать обновить indy.
  • ddd329 (06.04.11 16:16) [5]

    > Или руки выпрямить. Тоже способствует

    Если кому и выпрямить, то точно не мне! Не я же писал эти компоненты!!!

    > Лично я долго мучился с ИНДИ. А альтернативные библиотеки
    > сразу выдали нужный результат и без всяких заморочек.

    Павел можешь дать ссылку на компоненты, и пример кода как отправлять, если нетрудно?
  • И. Павел © (06.04.11 16:28) [6]
    > Павел можешь дать ссылку на компоненты, и пример кода как
    > отправлять, если нетрудно?


    Библиотека Synapse:
    Вот их сайт: http://synapse.ararat.cz/doku.php
    Вот пример:

    procedure THDMesForm.OkClick(Sender: TObject);
    var i, FileNum: integer;
       tmpMsg : TMimeMess;
       tmpStringList : TStringList;
       tmpMIMEPart : TMimePart;
    begin
     ...

     tmpStringList := nil;
     tmpMsg := nil;
     try
       tmpStringList := TStringList.Create;
       tmpMsg := TMimeMess.Create;
       PHDSend.Visible := true;
       PHDSend.Refresh;

       tmpMsg.Header.Subject := HDHeader.Text;
       tmpMsg.Header.From := 'Reader@none.ru';
       tmpMsg.Header.ToList.Add('hd@kos.ru');

       tmpMIMEPart := tmpMsg.AddPartMultipart('mixed', nil);

       MesText.Lines.Add('');
       MesText.Lines.Add('Отправитель сообщения: ' + FIO);
       tmpStringList.Text := MesText.Text;
       tmpMsg.AddPartText(tmpStringList, tmpMIMEPart);

       ...

       for i := 0 to AnotherFiles.Count - 1 do
         tmpMsg.AddPartBinaryFromFile(AnotherFiles.Items[i], tmpMIMEPart);

       tmpMsg.EncodeMessage;
       smtpsend.SendToRaw('progr@none.ru', 'progr@mail.ru', 'mail.ru', tmpMsg.Lines, '', '');

       Close;
     finally
       tmpMsg.Free;
       tmpStringList.Free;

       PHDSend.Visible := false;
     end;
    end;



    Еще рекомендую ICS, особенно если нужно не просто отправить письмо но и детально управлять отправкой.
  • Dennis I. Komarov © (06.04.11 16:37) [7]
    Отличный компонент TTcpClient :)
    Идет в стандартной поставке, ничего лишнего. Сам использую.
  • Игорь Шевченко © (06.04.11 16:41) [8]

    > Если кому и выпрямить, то точно не мне!


    тебе и тому, кто советует переходить.

    Ни ты, ни автор поста [2] не являются единственными уникумами, использующими Indy, пользователей Indy по миру - вагон и маленькая тележка.
  • ddd329 (06.04.11 17:10) [9]

    > тебе и тому, кто советует переходить.

    Ну тогда скажи как быть с заголовком? Где в коде что не так, из-за моих рук???
  • Dennis I. Komarov © (06.04.11 17:24) [10]

    > Ни ты, ни автор поста [2] не являются единственными уникумами,
    >  использующими Indy, пользователей Indy по миру - вагон
    > и маленькая тележка.

    Каждому свои грабли...
  • ddd329 (07.04.11 13:53) [11]

    > тебе и тому, кто советует переходить.
    >
    > Ни ты, ни автор поста [2] не являются единственными уникумами,
    >  использующими Indy, пользователей Indy по миру - вагон
    > и маленькая тележка.

    Понимаю, если бы привел пример, а потом бы сказал, что руки надо выпрямить. А тогда че писал не понятно, бери пример с И. Павел[6]
  • Dennis I. Komarov © (07.04.11 14:14) [12]

    > Понимаю, если бы привел пример, а потом бы сказал, что руки
    > надо выпрямить.

    Исходники открыты. Что мешает прямыми руками найти и исправить?
  • ddd329 (07.04.11 14:47) [13]
    Нет времени разбираться в этих компонентах, а что исправить не знаю. Если знаете скажите, если не знаете зачем умничить?
  • Anatoly Podgoretsky © (07.04.11 14:52) [14]
    Если у тебя нет времени, то заплати и спи спокойно.
  • sniknik © (07.04.11 15:10) [15]
    у меня оправляется с инди и все нормально... и русские имена файлов вкладываются (да других надо сказать и нет, по протоколу)...
    не знаю важно это или нет но у меня 10й, последний официальный релиз...  (в 7ке по умолчанию 9ка).

    > Нет времени разбираться в этих компонентах, а что исправить не знаю. Если знаете скажите, если не знаете зачем умничить?
    знать то знают, но чтобы сказать, это нужно за тебя разобраться (+ догадаться о твоих глюках), пример, это надо писать... а у них времени нет.
  • Игорь Шевченко © (07.04.11 15:39) [16]

    > у меня оправляется


    LOL
  • sniknik © (07.04.11 15:59) [17]
    обпечатка... по Фрейду. ;)
  • ddd329 (07.04.11 16:09) [18]
    Найду 10-ый, спасибо)
 
Конференция "Начинающим" » Заголовок в Indy 'корявый'
Есть новые Нет новых   [134437   +29][b:0][p:0.002]