Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.56 MB
Время: 0.034 c
1-1110039565
Leeechhhh
2005-03-05 19:19
2005.03.20
Чайниковский вопрос, хм, как получить системное время


14-1109911949
TUser
2005-03-04 07:52
2005.03.20
Где живет зверек?


1-1109948600
вопрос
2005-03-04 18:03
2005.03.20
Надо из компонента узнать, что в форме выполнилось событие


3-1108568740
juice
2005-02-16 18:45
2005.03.20
CREATE TABLE в хранимой процедуре


4-1107508368
KostR
2005-02-04 12:12
2005.03.20
Что я делаю не так при чтении с последовательного порта