Форум: "Сети";
Текущий архив: 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.036 c