![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Заголовок в Indy 'корявый'
ddd329 © (2011-04-06 15:22:00)Отправляю письмо в 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;
ddd329 (2011-04-07 16:09:00) [1]Найду 10-ый, спасибо)
sniknik (2011-04-07 15:59:00) [2]обпечатка... по Фрейду. ;)
Игорь Шевченко (2011-04-07 15:39:00) [3]
> у меня оправляется
LOL
sniknik (2011-04-07 15:10:00) [4]у меня оправляется с инди и все нормально... и русские имена файлов вкладываются (да других надо сказать и нет, по протоколу)...
не знаю важно это или нет но у меня 10й, последний официальный релиз... (в 7ке по умолчанию 9ка).
> Нет времени разбираться в этих компонентах, а что исправить не знаю. Если знаете скажите, если не знаете зачем умничить?
знать то знают, но чтобы сказать, это нужно за тебя разобраться (+ догадаться о твоих глюках), пример, это надо писать... а у них времени нет.
Anatoly Podgoretsky (2011-04-07 14:52:00) [5]Если у тебя нет времени, то заплати и спи спокойно.
ddd329 (2011-04-07 14:47:00) [6]Нет времени разбираться в этих компонентах, а что исправить не знаю. Если знаете скажите, если не знаете зачем умничить?
Dennis I. Komarov (2011-04-07 14:14:00) [7]
> Понимаю, если бы привел пример, а потом бы сказал, что руки
> надо выпрямить.
Исходники открыты. Что мешает прямыми руками найти и исправить?
ddd329 (2011-04-07 13:53:00) [8]
> тебе и тому, кто советует переходить.
>
> Ни ты, ни автор поста [2] не являются единственными уникумами,
> использующими Indy, пользователей Indy по миру - вагон
> и маленькая тележка.
Понимаю, если бы привел пример, а потом бы сказал, что руки надо выпрямить. А тогда че писал не понятно, бери пример с И. Павел[6]
Dennis I. Komarov (2011-04-06 17:24:00) [9]
> Ни ты, ни автор поста [2] не являются единственными уникумами,
> использующими Indy, пользователей Indy по миру - вагон
> и маленькая тележка.
Каждому свои грабли...
ddd329 (2011-04-06 17:10:00) [10]
> тебе и тому, кто советует переходить.
Ну тогда скажи как быть с заголовком? Где в коде что не так, из-за моих рук???
Игорь Шевченко (2011-04-06 16:41:00) [11]
> Если кому и выпрямить, то точно не мне!
тебе и тому, кто советует переходить.
Ни ты, ни автор поста [2] не являются единственными уникумами, использующими Indy, пользователей Indy по миру - вагон и маленькая тележка.
Dennis I. Komarov (2011-04-06 16:37:00) [12]Отличный компонент TTcpClient :)
Идет в стандартной поставке, ничего лишнего. Сам использую.
И. Павел (2011-04-06 16:28:00) [13]> Павел можешь дать ссылку на компоненты, и пример кода как
> отправлять, если нетрудно?
Библиотека 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, особенно если нужно не просто отправить письмо но и детально управлять отправкой.
ddd329 (2011-04-06 16:16:00) [14]
> Или руки выпрямить. Тоже способствует
Если кому и выпрямить, то точно не мне! Не я же писал эти компоненты!!!
> Лично я долго мучился с ИНДИ. А альтернативные библиотеки
> сразу выдали нужный результат и без всяких заморочек.
Павел можешь дать ссылку на компоненты, и пример кода как отправлять, если нетрудно?
И. Павел (2011-04-06 16:03:00) [15]
> Или руки выпрямить. Тоже способствует
Лично я долго мучился с ИНДИ. А альтернативные библиотеки сразу выдали нужный результат и без всяких заморочек.
> ddd329 (06.04.11 15:22)
Как вариант - можно еще попробовать обновить indy.
Игорь Шевченко (2011-04-06 15:55:00) [16]
> Так что, ИМХО, лучше сразу перейти с Indy на что-нибудь
> другое.
Или руки выпрямить. Тоже способствует
И. Павел (2011-04-06 15:48:00) [17]Рекомендую ознакомиться с этой веткой:
http://www.delphimaster.ru/cgi-bin/forum.pl?id=1297153035&n=3
Проблему с заголовком, конечно, можно решить изменением кодировки, но потом пойдут проблемы с русскими именами прикрепленных файлов и т.д. Так что, ИМХО, лучше сразу перейти с Indy на что-нибудь другое.
Dennis I. Komarov (2011-04-06 15:32:00) [18]А оно надо? (я про инди)