Odeslani mailu pres SMTP z PHP

From: Martin Zeidler (zm@wo.cz)
Date: 16. 04. 2001, 19:47 CEST


Jiz delsi dobu se snazim vyresit problem s odeslanim mailu pres SMTP primo z
PHP - bohuzel mam stranky na serveru kde je fce Mail zakazana...
Abych to mohl ladit na localhostu, stahnul jsem si postovni server
Mercury/32 a zkousim to posilat pres nej. Prozatim jsem se daleko nedostal,
nechce mi to brat adresu prijemce:

<?
error_reporting(15);
$FROM="martin.zeidler@worldonline.cz";
$TO="zm@wo.cz";
$MESSAGE="test";
$fp = fsockopen ("localhost", 25);
fputs ($fp, "HELO $REMOTE_ADDR\n");
fputs ($fp, "MAIL FROM: $FROM\n");
fputs ($fp, "RCPT TO: $TO\n");
fputs ($fp, "QUIT\n");
while (!feof($fp))  echo fgetc ($fp);
fclose ($fp);
error_reporting(0);
?>

Neni to samozrejme kompletni odeslani mailu, jde mi jen o tu cast kde se
odesila jmeno prijemce - celkove se mi vrati toto hlaseni:

=========================
220 127.0.0.1 Mercury/32 v3.21c ESMTP server ready. 250 127.0.0.1 Hi there,
127.0.0.1. 250 Sender OK - send RCPTs. 553 Invalid RFC821 mailbox
specification. 221 127.0.0.1 Service closing channel. ÿ
=========================

Pritom syntax mailove adresy mam v poradku. Jedine co me napada, ze mam ten
Mercury spatne nastaveny...

I kdybych mel ale Mercury spatne nastaveny, tohle mi nechce fungovat online:

<?
error_reporting(15);
$FROM="martin.zeidler@worldonline.cz";
$TO="zm@wo.cz";
$MESSAGE="test";
$fp = fsockopen ("smtp.atlas.cz", 25);
fputs ($fp, "HELO $REMOTE_ADDR\n");
fputs ($fp, "MAIL FROM: $FROM\n");
fputs ($fp, "RCPT TO: $TO\n");
fputs ($fp, "DATA\n\n");
fputs ($fp, "$MESSAGE\n");
fputs ($fp, "\n.\n");
fputs ($fp, "QUIT\n");
while (!feof($fp))  echo fgetc ($fp);
fclose ($fp);
error_reporting(0);
?>

Nic to nedela - nic to nevypise, mail se neodesle a prohlizec se tvari ze
taha stranku :o(

No a muj posledni dotaz - prostudoval jsem RFC821 a pokud jsem to dobre
pochopil, tak komunikace mezi mnou a SMTP by mela vypadat tak, ze ja dam
nejaky prikaz a on mi odpovi. Jenze me to tak nechce chodit - cili bych si
to predstavoval asi takhle:

$fp = fsockopen ("localhost", 25);
fputs ($fp, "HELO $REMOTE_ADDR\n");   // povel
while (!feof($fp))  echo fgetc ($fp);     // cteme odpoved
fputs ($fp, "MAIL FROM: $FROM\n");   // dalsi povel
while (!feof($fp))  echo fgetc ($fp);     // dalsi odpoved
atd...

Nebo to tak nefunguje?? Jeste si jdu pro jistotu prostudovat
http://www.php.cz/manual/en/function.fsockopen.php
:o)

Martin Zeidler
----------------------
mailto:pepa_z_hongkongu@wo.cz
http://kopec.yo.cz
http://zeidler.web.worldonline.cz



This archive was generated by hypermail 2.1.2 : 04. 09. 2001, 06:24 CEST