E-Mail versenden über sockets
Daniel83
- php
0 XaraX
Hi, ic habe folgenden stück Code aus meinem Programm kopiert :
[Code]
$fp2=fsockopen("pop3.meinedomain.com",110);
$result = fgets($fp2,1024);
//echo "$result\n";
fputs($fp2,"USER <<username>>\r\n");//
$result = fgets($fp2,1024);
//echo "$result\n";
fputs($fp2,"PASS <<pass>>\r\n");
$result = fgets($fp2,1024);
//echo "$result\n";
fclose($fp2);
$email_to = "<<TO_MAIL>>"; //Fiktive Namen !!!
$email_from = "<<FROM_MAIL>>";
$email_betreff ="<<BETREFF>>";
$hdr = "From: $email_from\r\n";
$hdr .= "To: $email_to\r\n";
$hdr .= "Subject: $email_betreff\r\n";
$hdr .= "\r\n";
$fp = fsockopen("smtp.meinedomain.com", 25);
$result = fgets($fp, 1024);
//echo "$result\n";
if ($result+0 != 220)
die("Statuscode falsch (service not ready?): $result");
fputs($fp, "HELO Hallo\r\n");
$result = fgets($fp, 1024);
//echo "$result\n";
if ($result+0 != 250)
die("HELO Statuscode falsch: $result");
fputs($fp, "MAIL FROM: <<FROM_MAIL>>");
$result = fgets($fp, 1024);
//echo "$result\n";
if ($result+0 != 250)
die("MAIL FROM Statuscode falsch: $result");
fputs($fp, "RCPT TO: $email_to\r\n");
$result = fgets($fp, 1024);
//echo "$result\n";
if ($result+0 != 250)
die("RCPT TO: Statuscode falsch: $result");
fputs($fp, "DATA\n");
$result = fgets($fp, 1024);
//echo "$result\n";
if ($result+0 != 354)
die("DATA: Statuscode falsch: $result");
fputs($fp, $hdr);
fputs($fp, "Mein Text");
fputs($fp, "\r\n.\r\n");
$result = fgets($fp, 1024);
if ($result+0 != 250)
die("DATA(end): Statuscode falsch: $result");
fputs($fp, "QUIT\r\n");
$result = fgets($fp, 1024);
if ($result+0 != 221)
die("QUIT: Statuscode falsch: $result");
fclose($fp);
echo "E-Mial wurde erfolgreich an $Amail versendet!<br>";
[/code]
Wenn ich als smtp server den von Web.de angebe funktioniert das, aber wenn ich den von meinem Domain anbieter nehme, dann klappt das nicht.
Ich bekomme folgenden Fehlercode : 451
Bedeutet ja folgendes :"Requested action aborted: local error in processing"
Den Fehler bekomme ich an der stelle wo ich den . im DATA Block an den smtp server schicke. Gibt es noch andere Determinierungszeichen ? Oder liegt der Fehler im Quellcode ?
Gruß Daniel
Hallo Daniel83,
fputs($fp, "DATA\n");
"DATA\r\n"
Gruß aus Berlin!
eddi