-
Отправляю письмо в 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;
-
А оно надо? (я про инди)
-
Рекомендую ознакомиться с этой веткой: http://pda.delphimaster.net/?id=1297153035&n=3Проблему с заголовком, конечно, можно решить изменением кодировки, но потом пойдут проблемы с русскими именами прикрепленных файлов и т.д. Так что, ИМХО, лучше сразу перейти с Indy на что-нибудь другое.
-
> Так что, ИМХО, лучше сразу перейти с Indy на что-нибудь > другое.
Или руки выпрямить. Тоже способствует
-
> Или руки выпрямить. Тоже способствует
Лично я долго мучился с ИНДИ. А альтернативные библиотеки сразу выдали нужный результат и без всяких заморочек.
> ddd329 (06.04.11 15:22)
Как вариант - можно еще попробовать обновить indy.
-
> Или руки выпрямить. Тоже способствует
Если кому и выпрямить, то точно не мне! Не я же писал эти компоненты!!!
> Лично я долго мучился с ИНДИ. А альтернативные библиотеки > сразу выдали нужный результат и без всяких заморочек.
Павел можешь дать ссылку на компоненты, и пример кода как отправлять, если нетрудно?
-
> Павел можешь дать ссылку на компоненты, и пример кода как > отправлять, если нетрудно?
Библиотека 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, особенно если нужно не просто отправить письмо но и детально управлять отправкой.
-
Отличный компонент TTcpClient :) Идет в стандартной поставке, ничего лишнего. Сам использую.
-
> Если кому и выпрямить, то точно не мне!
тебе и тому, кто советует переходить.
Ни ты, ни автор поста [2] не являются единственными уникумами, использующими Indy, пользователей Indy по миру - вагон и маленькая тележка.
-
> тебе и тому, кто советует переходить.
Ну тогда скажи как быть с заголовком? Где в коде что не так, из-за моих рук???
-
> Ни ты, ни автор поста [2] не являются единственными уникумами, > использующими Indy, пользователей Indy по миру - вагон > и маленькая тележка.
Каждому свои грабли...
-
> тебе и тому, кто советует переходить. > > Ни ты, ни автор поста [2] не являются единственными уникумами, > использующими Indy, пользователей Indy по миру - вагон > и маленькая тележка.
Понимаю, если бы привел пример, а потом бы сказал, что руки надо выпрямить. А тогда че писал не понятно, бери пример с И. Павел[6]
-
> Понимаю, если бы привел пример, а потом бы сказал, что руки > надо выпрямить.
Исходники открыты. Что мешает прямыми руками найти и исправить?
-
Нет времени разбираться в этих компонентах, а что исправить не знаю. Если знаете скажите, если не знаете зачем умничить?
-
Если у тебя нет времени, то заплати и спи спокойно.
-
у меня оправляется с инди и все нормально... и русские имена файлов вкладываются (да других надо сказать и нет, по протоколу)... не знаю важно это или нет но у меня 10й, последний официальный релиз... (в 7ке по умолчанию 9ка).
> Нет времени разбираться в этих компонентах, а что исправить не знаю. Если знаете скажите, если не знаете зачем умничить? знать то знают, но чтобы сказать, это нужно за тебя разобраться (+ догадаться о твоих глюках), пример, это надо писать... а у них времени нет.
-
> у меня оправляется
LOL
-
обпечатка... по Фрейду. ;)
-
Найду 10-ый, спасибо)
|