Текущий архив: 2005.03.20;
Скачать: CL | DM;
Вниз
Как написать клиент отправки почты под ИНДИ Найти похожие ветки
← →
Diaskhan (2005-01-12 14:32) [0]Я хотел написать клиент отправки почты.
Использую D6 и Инди.
Но у меня возникает проблема.
Приконективается нормально.
А вот если письмо отправлять,то возникает ошибка какoй-то аутентификации.
Может это связано с тем что надо заполнить поле "от кого", тоесть указать свой mail.
(примечание -сервер исходящей почты -smtp.mail.ru)
Кстати The BAT-тоже написан на дельфях.
Кто может ,Объесните вчем фишка отправки message.
← →
Eraser © (2005-01-12 14:35) [1]Надо ввсети пароль к твоему аккаунту на сервере.
← →
Alexander Panov © (2005-01-12 14:43) [2]Diaskhan (12.01.05 14:32)
Обнови Indy до версии 9(как минимум).
В версии 8, поставляемой с D6 есть глюк, связанный с авторизацией.
← →
Eraser © (2005-01-12 14:55) [3]Alexander Panov ©
Очевидно ты начинаешь новый проект. Советую тебе начинать его на Delphi 2005 и Indy 10.
← →
Eraser © (2005-01-12 15:02) [4]Alexander Panov ©
Извини я случайно адресовал предыдущую месагу тебе, а хотел Diaskhan"у ;-)))
← →
Diaskhan (2005-01-13 14:05) [5]TO Eraser ©
Дорошой Cтиратель ©,можете стирать свой прочерки, но не меня ,друг мой..
Между прочем я написал свою процу inttostr и strtoint,А вы можете этим похвастаться ??
TO Alexander Panov ©
Посоветуйте пожалуиста другой vcl,(или дайте ссылку).
Где скачать ИНДИ 9.???????????????????
//А то накладно на моей машине ставить D7,
//Все таки 233mhz и 64mem.
Так почему ошибка возникает при отправке сообщения, а не при конекте.
Ведь авторизация идет при конекте ,ну если пароль или логин не тот.
Или 2 авторизация, когда отправляешь message тоже нужна. Или это условности smtp.
{Как много ИЛИ}
А вобще Я думаю мне надо достать хороший book по сетевым протоколам.
А то уж больно много вопросов задаю..
Наверное, каждый сам, должен проводить себе ЛИКБЕЗ.. хотя это несущественно.
Да очем же думал Borland когда запихивал indy 8 в D6.
Хотя они не виноваты. Как говорится ненравится - пиши свой....
А то уж больно заюзался.
-exit
← →
Screw_aka_Viktor (2005-01-13 14:18) [6]Глюки то есть в Indy но Diaskhan"у нужно сделать аутентификацию на SMTP серванте. Этот сервант требует её!
Нужно это делать подобным образом:
with IdMessage1 do
begin
Body.Assign(Memo1.Lines);//Текст сообщения
From.Text := ReadIni("Smtp","FromAdress","Options.ini");//От кого
Subject :="Screw aka Viktor" ;//Тема в виде рекламы
//charset:="ISO-8859-1";
//charset:="US-ASCII";
Recipients.EMailAddresses := "Petrov@Mail.ru";
//Приоритет письма
Priority := TIdMessagePriority(mpHighest);
//Получатель точной копии
CCList.EMailAddresses := ReadIni("Smtp","FromAdress","Options.ini");
//Получатель слепой копии
//BccList.EMailAddresses :=ReadIni("Smtp","FromAdress","Options.ini");
end;
idSMTP1.Host := ReadIni("Smtp","Host","Options.ini");//Сервер SMTP
idSMTP1.UserID := ReadIni("Smtp","UserID","Options.ini");//Логин
idSMTP1.Password := ReadIni("Smtp","Password","Options.ini");//Пароль
idSMTP1.Port := 25;//Порт SMTP сервера
idSMTP1.MailAgent := "Bulbulator";//Имя агента
case StrToInt(ReadIni("Smtp","Authentification","Options.ini")) of
0: idSMTP1.AuthenticationType := atNone;
1: idSMTP1.AuthenticationType := atLogin; {Simple Login}
end;
try
If idSMTP1.connected then //Если имеется коннект значит дисконнект
idSMTP1.Disconnect;
idSMTP1.Connect;
idSMTP1.Send(IdMessage1);
except
idSMTP1.Disconnect;
statusbar1.panels[1].text:="Ошибка...";
Application.MessageBox(Pchar("У Вас имеются проблемы со связью!"+#10+"Читай FAQ в HELP""e."),"Мощная ошибка.",MB_OK or MB_ICONERROR);
exit;
end;
idSMTP1.Disconnect;
statusbar1.panels[1].text:="Улетело: "+Edit1.Text;
...
Загляни сюда: http://forum.sources.ru/index.php?showtopic=75868
← →
Diaskhan (2005-01-13 14:36) [7]Большое спасибо Screw_aka_Viktor,Еще не смотрел но разберусь,
А не которые говорили что в D6 INDY глючит.
← →
Eraser © (2005-01-13 16:37) [8]Diaskhan
inttostr и strtoint
Я тоже написал, даже на MASM, только под DOS ;-))
← →
Screw_aka_Viktor (2005-01-13 17:31) [9]Программы без глюков не бывает и соответственно компонентов :) Но вот по поводу инди я слышал только положительные отзывы и сам не сталкивался с глюками! Вот FastNET -это да-а-а через него можно намного проще организовать подобные вещи но вот с глюками конешно замучаешся. FastNET довольно глючный потому я тебе и рекомендовл инди.
← →
Alexander Panov © (2005-01-13 17:51) [10]http://delphimaster.net/view/6-1101376180/
← →
Alexander Panov © (2005-01-13 17:53) [11]Diaskhan (13.01.05 14:05) [5]
Посоветуйте пожалуиста другой vcl,(или дайте ссылку).
http://www.indyproject.org/
← →
Diaskhan (2005-01-16 15:19) [12]НЕА,НЕА,НЕА,НЕА,НЕА,.
Под D6, idsmttp , непашет, Очень скудно.
Придется юзать другие VCL,
Как говорится Indy хорош, но в данном случае не поможет.
Заранее всем благодарен,
Follow the white rabbit,Neo.
← →
Diaskhan (2005-01-16 15:23) [13]то Screw_aka_Viktor
Да у меня ИНДИ ТОЖЕ неПАШЕТ ,на Delphi6.
Даже после приведенного кода.(Скудно)..
Что еще посоветуете Господа Офицеры.
← →
Eraser © (2005-01-16 17:50) [14]Diaskhan
Да у меня ИНДИ ТОЖЕ неПАШЕТ ,на Delphi6.
Делфи 6 выпущена много лет назад, и её поддержка нецелесообразна, поэтому советую переходить на delphi 2005. Когда-нибудь это всё равно необходимо будет сделать...
← →
Alexander Panov © (2005-01-16 18:27) [15]Diaskhan (16.01.05 15:23) [13]
В ветке по ссылке этот вопрос решен.
Скачай Indy9 и установи на D6, тогда сможешь работать с mail.ru.
Eraser © (16.01.05 17:50) [14]
Делфи 6 выпущена много лет назад, и её поддержка нецелесообразна, поэтому советую переходить на delphi 2005.
Зачем такой бред писать?
← →
Eraser © (2005-01-16 22:42) [16]Alexander Panov ©
Зачем такой бред писать?
Я конечно понимаю, что перход на новую версию, это очень не простая процедура, но я придерживаюсь правила- не отставать от последней версии больше чем на 1 версию, т.к. задержка перехода даже в 2 версии, потом может вылется в переписание чуть ли не половины программы.
Дело в том, что разроботчики delphi обычно мало-мальски стараются сделать переход от одной версии к другой безболезненным, но поддержкой совместимости с более старыми версиями они не обеспечивают.
Другой вопрос если переход затрудняет финансовая сторона, тогда не слушайте мои советы ;-))
← →
Diaskhan (2005-01-17 01:18) [17]Господин Eraser, Ты должно быть издеваешся,
DELPHI 8,или DELPHI 9, на 233 mhz и 64mem.
Да это просто УМОРА.
Как минимум надо ставить 2000,xp.(Очень критично).
Да и впринципе ты Сам понимаеш,что асм есть сила (сам на асме inttostr бадяжил),
А говоришь что, надо переходить на delphi 2005.
Не логично получается.
Можно вообще обойтись с delphi 6.(Это я как USER говорю).
Тут Я надыбал VCl c TORRY.ru (надеюсь это менее критично, чем INDY 9 ставить).
Программист - это не тот кто отмазывается что у user"a комп старый.
А тот, кто этот древний комп заставит работать.(Цитата старой школы)..
← →
Eraser © (2005-01-17 13:34) [18]Diaskhan
Не знаю насчёт 233 и 64, но у меня делфи 7 на Athlon 650MHz и 128 DIMM прекарасно работала. А delphi 5 на Cyrics 120MHz 16SIMM...
Про делфи 8 можно вычеркнуть, т.к. на ней нельзя win32 писать.
Можно вообще обойтись с delphi 6.(Это я как USER говорю).
Если так рассуждать, то можно и Delphi 2 обойтись- компилирует 32 разрядный код. Что ещё надо. Только вот перенести проект на, например .net или что_ещё_они_там_придумают с последних версий будет хоть и не просто, но возможно (пример- delphi 8) а с тех же 6 делфей врядли...
← →
Diaskhan (2005-01-17 14:14) [19]Дорогой Стиратель (уже дорогой!!!!).
В россии ДОТ-НЭТ, будет как-то продвигаться,а вот в Казахстане.
Большой вопрос.
Да и что говорить.Вопрос- когда ,где и при каких обстоятельствах она будет применятся. Вот приведи пример,что-ли..
>>Другой вопрос если переход затрудняет финансовая сторона, >>тогда не слушайте мои советы ;-))
У меня тоже есть delphi8 ,правда нелицензионный.
А ты хочешь сказать что у тебя delphi7 лицензионный???
Кстати Я не капли не сомневаюсь что ты порядный человек ,Я искренне верю что дома у тебя стоит лицензионный delphi7.
Ты же солидный чел, и не будеш юзать нелегальное ПО.
(Sorry for joke.)
Да И вопрос, Что за DELPHI9 ,и что там,слышно на фронте Borland.
Для чего DELPHI9 нужна будет.
А вообще, тем у кого стоит P4 и DELPHI7 стоит уважать возможность программировать, без усилий.
А то представь Юзера(программера) который говорит
-А я лучше игру поиграю. (Как мне обидно)
← →
Eraser © (2005-01-17 14:58) [20]Diaskhan
В пердыдущем своём сообщении я уточнил про delphi 8, что на неё нельзя писать win32 приложения, поэтому я её и не использую.
Про финансовую сторону я упамянул из-за того, что сейчас, особенно в крупных городах, если есть оффициально зарегистрированная фирма, использовать пиратский софт становиться затруднительно. Что касается меня, то в данный момент у меня установлена delphi 7, но собираюсь переходить на delphi 2005. Хоть я ещё сам и не пробовал новый делфи, но уже в сети появились стати с его описанием. Самое главное, что вновь вернули поддержку win32 приложений!!! + новый удобный редактор кода, а то мне уже этот (d1-d7) уже опостылел.
В игрушку поиграть что ли..... в doom3.... ;-)))))
← →
Diaskhan (2005-01-19 07:38) [21]Ни одного рульного бесплатного VCL не нашел на Toryy.
Так , я не понял авторизация для акаунта при конекте SMTP нужна или нет? А при отправке??
Здесь написано- delphimaster.net/view/6-1101376180/ ,что не нужна.
И пожалуйста обьесните что, такое протокол IMAPI, и модуль MAPI,
Я думаю они связаны.
Imapi это не рульный протокол,а mapi это его интерфейс.
По крайней мере,я так думаю..
Кстати как Тебе игра "Городская DOOMA 3", дорогой Стиратель.
Джон Кармак=рульный программер.(Да и еще, и трудоголик) .
← →
Diaskhan (2005-01-19 07:43) [22]Кстати Eraser, покажи функцию inttostr и strtoint на АСМЕ.
Ты должен знать, сколько будет 5 в 0 степени.
← →
Eraser © (2005-01-19 13:17) [23]Diaskhan
Да если даже эта прога есть у меня на винте, то я её уж точно не найду, по крайней мере найти с первой попытки не удалось ;-))
А программу эту меня года 2 назад попросила написать подуга, которой задали самостоятельно наисать ввод-вывод чисел, естественно что-то типа inttostr strtoint.
PS А при чём тут 5 в 0 степени???
← →
Diaskhan (2005-01-19 15:03) [24]Дело в том .
Тут я имею ввиду процу strtoint.
У тебя есть строка "500".
Как ты узнаеш что у тебя 5 является 3 элементом в типе Integer.
Тебе надо сделать след операции.
0*(10^0)=0
0*(10^1)=0
5*(10^2)=0
А для того чтобы написать процу возведения в степень.
Ты должен знать чему равно 10 в 0 степени.(Математик..)
Теперь попробуй написать процу которая будет конвертировать strtoint,а потом прибавит и inttostr(выведет).
В данном случае возможно ,Ты вообще ни понимаеш что здесь применяется математика.
И ответь пжалуста на вопрос.
И пожалуйста обьесните что, такое протокол IMAPI, и модуль MAPI,
Я думаю они связаны.
Imapi это не рульный протокол,а mapi это его интерфейс.
По крайней мере,я так думаю..
← →
Diaskhan (2005-01-19 15:04) [25]Так , я не понял авторизация для акаунта при конекте SMTP нужна или нет? А при отправке??
Здесь написано-
delphimaster.net/view/6-1101376180/ ,что не нужна.
← →
BiN © (2005-01-19 16:53) [26]Diaskhan (19.01.05 15:04) [25]
Так , я не понял авторизация для акаунта при конекте SMTP нужна или нет? А при отправке??
Пропускаем весь бредовый спор про инди и дотНет... Читай матчасть, а имено документацию по "почтовым" протоколам: pop3, smtp, imap. А наличие авторизации и ее типы задаются самим сервером и только им.
← →
Alexander Panov © (2005-01-19 16:55) [27]Diaskhan (19.01.05 15:04) [25]
По ссылке написано, что хотя mail.ru декларирует необходимость авторизации при отправке почты, но на самом деле авторизация не используется.
При отправке почты в Indy9 без авторизации проблем не возникает.
← →
Diaskhan (2005-01-21 08:24) [28]Наконец-то разобрался с отправкой почты.
Пришлось закоментировать строку Х-value в mодуле Idmessage.pas
Как я рад.
И ни какой аутентификации не нужно.. По краиней мере при свойстве type:=atnone;
Всем Спасибо, Господа Дельфяры.
Вот привожу свой функции inttostr и strtoint , не критиковать!!
Я и не рассчитывал на скорость.
Тут использовалась математика.
Кто сможет оптимизируйте их.
function SqrW(value,cout:integer):integer; {возведение в степень}
var temp,i:integer;
begin
case cout of
0:result:=1;
else begin
temp:=value;
for i:=2 to cout do
temp:=temp*value;
result:=temp;
end;
end;
{if cout=0 then begin result:=1; end
else
begin
for i:=2 to cout do
temp:=temp*value;
result:=temp;
end;}
end;
function IntToStrW(value:integer):string;
var temp:string;
k,l:integer;
i:byte;
begin
i:=0;
k:= value;
repeat
Inc(I);
k := k div 10;
until k = 0;
{while k>0 do
begin
k:=k div 10;
inc(i);
end; }
for k:=i-1 downto 0 do
begin
L:=SqrW(10,k);
i:=value div L;
temp:=temp+chr(i+48);
value:=value-i*L;
end;
result:=temp;
end;
function StrToIntW(stri:string):integer;
var temp,k:integer;
i,kof:byte;
begin
temp:=0; kof:=0;//k:=0;
i:=length(stri);
for i:=i{(length(stri))} downto 1 do
begin
{ k:=(ord(str[i])-48)*(Sqrw(10,kof));
inc(temp,k);
inc(kof);}
k:=ord(stri[i]);
dec(k,48);// if not(k in [0..9]) then begin result:=0; exit; end;
k:=k*(Sqrw(10,kof));
inc(temp,k);
inc(kof);
end;
result:=temp;
end;
← →
Diaskhan (2005-01-21 08:32) [29]Спасибо за ЛИКБЕЗ,Господа.
1.Где можно надыбать МАТЧАСТЬ по протоколам ??
2.Где можно найти хелп по стандартной проге TELNET ??
(А то я слыхал что ,можно почту отправлять ч/з прогу TELNET
Меня больше интересует, его команды).
3.Mail.ru поддерживает IMAPI-protocol ??
Страницы: 1 вся ветка
Текущий архив: 2005.03.20;
Скачать: CL | DM;
Память: 0.53 MB
Время: 0.027 c