Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2004.07.25;
Скачать: [xml.tar.bz2];

Вниз

посылка почты   Найти похожие ветки 

 
ORMADA ©   (2004-05-25 09:39) [0]

Можно ли как то средствами вынЪАПИ послать почту ?
Можно конечно заюзать MAPI но он гад отправляет через почтовик по умолчанию, а хотелось бы бы без него
Возможно ли это ?
Лучше бы даж без формы как в командной строке


 
[lamer]Barmaglot ©   (2004-05-25 13:07) [1]

FAQ?

http://www.delphimaster.ru/cgi-bin/faq.pl?look=1&id=988621410&n=20


 
ORMADA ©   (2004-05-25 14:49) [2]

А чё такое TRASConn он на это рушается


 
Игорь Шевченко ©   (2004-05-25 22:21) [3]


> Можно конечно заюзать MAPI но он гад отправляет через почтовик
> по умолчанию


Эт как ?


 
ORMADA ©   (2004-05-26 07:31) [4]

Дык вот так... пример по ссылке http://www.delphimaster.ru/cgi-bin/faq.pl?look=1&id=988621410&n=20
для отправки почты юзает почтовик по умолчанию
Эт нормально ?
И к тому же дельфы говорит что не знает что такое TRASConn.
А без использования почт клиента можно как нить сделать ?


 
ORMADA ©   (2004-05-26 08:39) [5]

WinSock2 кто-нить использовал ?


 
Mister Twister   (2004-05-26 10:18) [6]

Сынок, юзай Indy, и будет тебе щастье.


 
ORMADA ©   (2004-05-26 12:19) [7]

Папаша! Знаю я насчёт инди. Размер ехе будет раз в 20 больше нежели если через вынъАПИ.


 
Klev   (2004-05-27 01:59) [8]

Отправка почты средствами API дело трудное, но всегда можно найти на бескрайних просторах интернета что-нибудь полезное.
Вот как-то года два тому назад нашел я такое:

var
myadr:string="Smtp.mail_server.ru";
myusr:string="nobody@mail_server1.ru";

function Mail: boolean;
type
   TaPInAddr = array [0..255] of PInAddr;
   PaPInAddr = ^TaPInAddr;
var
   pptr : PaPInAddr;
   I : Integer;
   adress:string;
   s:TSocket;
   WSAData:TWSAData;
   ph:PHostEnt;
   InAddr: TInAddr;
   iaddr: integer;
   addr:TSockAddrIn;
   buf: array[0..255] of char;
   s1:string;
   
   
   
label ex;
      procedure sender(str:string);
      var
         i1:integer;
      begin
        for i1:=1 to Length(str) do
        if send(s, str[i1] , 1, 0) = SOCKET_ERROR then  exit;
      end;

begin
 result:=false;
 adress:= myadr;
 if WSAStartUp(257, WSAData) <> 0 then  Exit;

 s := socket(AF_INET,SOCK_STREAM,IPPROTO_IP);

 if s = INVALID_SOCKET then Exit;
 
 iaddr := inet_addr(PChar(adress));
 
 if iaddr <=0 then
  begin
   ph := gethostbyname(PChar(adress));
   if ph = nil then goto ex;
   pptr := PaPInAddr(ph^.h_addr_list);
   I := 0;
   while pptr^[I] <> nil do
   begin
    InAddr:= pptr^[I]^;
    inc(i);
    addr.sin_addr:=inaddr;
   // Коннектимся с серваком
    addr.sin_family := AF_INET;
    addr.sin_port := htons(25);
    if (connect(s, addr,sizeof(addr))) =0 then  break;
   
   end;
  end
 else

  begin
   addr.sin_family := AF_INET;
   addr.sin_port := htons(25);
   addr.sin_addr.S_addr:=iaddr;
  end;
   if (connect(s, addr,sizeof(addr))) >0 then  exit;

 i:=recv(s,buf,sizeof(buf),0);
 if (i = SOCKET_ERROR) then exit;
 s1:=buf;
 
 if pos("220", s1) <=0 then exit;

 fillchar(buf,255,0);
 sender("HELO mail_server.ru"#13#10);
 
 i:=recv(s,buf,sizeof(buf),0);
   if (i = SOCKET_ERROR) then goto ex;
 s1:=buf;
 
 if pos("250", s1) <=0 then goto ex;

 fillchar(buf,255,0);
 sender("MAIL FROM: nobody@mail_server.ru"#13#10);
 
 i:=recv(s,buf,sizeof(buf),0);
   if (i = SOCKET_ERROR) then goto ex;
 s1:=buf;
  if pos("250", s1) <=0 then goto ex;
 adress:="RCPT TO: "+myusr+""+#13#10;
 fillchar(buf,255,0);

 sender(adress);
 
 i:=recv(s,buf,sizeof(buf),0);
 if (i = SOCKET_ERROR) then goto ex;
 s1:=buf;
   if pos("25", s1) <=0 then goto ex;

 fillchar(buf,255,0);
 sender("DATA"#13#10);
 
 i:=recv(s,buf,sizeof(buf),0);
   if (i = SOCKET_ERROR) then goto ex;
 s1:=buf;
     if pos("354", s1) <=0 then goto ex;
 
  sender("text");
    if (sds mod 76)=0 then begin
  sender(#13#10);
 
  end;
  end;

  sender(#13#10);
 sender("=====================<END>===================="#13#10);
 sender(""#13#10); }

 fillchar(buf,255,0);
 sender(#13#10"."#13#10);
   if recv(s,buf,sizeof(buf),0) = SOCKET_ERROR then goto ex;
 s1:=buf;
 if pos("250", s1) <=0 then goto ex;

  sender("QUIT"#13#10);
  if recv(s,buf,sizeof(buf),0) = SOCKET_ERROR then goto ex;
  result:=true;
 ex: CloseSocket(s);
end;

Данная процедура работает не со всеми почтовыми серверами, а только с теми, которые не требуют дополнительной аутентификации.
Таких серверов немного. Но они все-таки еще есть.
Привожу список серверов, с которыми ничего хорошего не получится:
193.124.32.156
193.232.8.10
193.232.8.11
193.232.8.12
193.232.8.17
193.232.8.31
193.232.8.33
193.232.8.39
193.232.8.62
194.3.104.201
194.3.104.201
194.85.159.2
195.16.123.1
195.16.123.255
195.161.5.21
195.161.5.3
195.161.5.42
195.161.5.8
195.208.253.1
195.208.253.2
195.208.253.3
195.208.253.8
asylum.mailcom.com
baku-az.net
dorian.comtel.ru
mail.asn-linz.ac.at
mail.cablenet-va.com
mail.cccis.ro
mail.compuserve.com
mail.isp.net
mail.pip.com.au
mail.salekhard.ru
mail.sysnet.it
mailserver.ssnet.it
pop.clinch.ch
relay.777.com.ua
relay.stravt.ru
solaris.matti.ee
stud-mailer.uni-marburg.de
www.artinfo.ru
www.radiopage.ru
www.tvclass.ru

Советую опробовать крупнейшую почтовую службу российского Интернета. Адрес отправителя должен быть в виде имя@mail_server.ru.



Страницы: 1 вся ветка

Форум: "Сети";
Текущий архив: 2004.07.25;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.029 c
4-1086696654
Dion
2004-06-08 16:10
2004.07.25
Контроль печати...


3-1088677826
Lord
2004-07-01 14:30
2004.07.25
Delphi6 - SQL


4-1087117994
Del
2004-06-13 13:13
2004.07.25
COM-порт и работа с ним


1-1088037684
Xerx
2004-06-24 04:41
2004.07.25
Составной файл


1-1089634292
Snip
2004-07-12 16:11
2004.07.25
Delphi 8 and .NET





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский