JanuaR Geschrieben 29. Oktober 2008 Geschrieben 29. Oktober 2008 Hi, ich habe ein kleines Problem mit meiner Mail-Funtion! Da ich keinen eignen SMTP-Server auf dem Server laufen lasse, lasse ich den Mailversand per Socket machen. Mein Problem dabei ist, dass bevor der Header bzw. der DATA-Code kommt, einige XXXXXX... geschickt werden, sodass der Header keine Chance hat, in Kraft zu treten! $_MAIL["host"] ist z.B. mail.gmx.de oder ein anderer Provider! Beispiel eMail-Body: XXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXX Subject: test betreff2 testnachricht undso PHP-Funktion function mailer($email,$subject,$text){ global $_MAIL; $sender="service@xxxxx.de"; $hdr="From: <".$sender.">\n"; $hdr.="To: <".$email.">\n"; $hdr.="Subject: ".$subject."\n"; //Socket erstellen $fp = fsockopen($_MAIL["host"], $_MAIL["port"]); $banner = fgets($fp, 1024); //EHLO-CMD fputs($fp, "EHLO ".$_SERVER['SERVER_NAME']."\r\n"); $result = fgets($fp, 1024); if ($result+0 != 250 AND $result+0 != 220) die("HELO Statuscode: ".$result); //Authentifizierung fputs($fp, "AUTH LOGIN\r\n"); $result = fgets($fp, 1024); if ($result+0 != 250 AND $result+0 != 334) die("AUTH LOGIN Statuscode: ".$result); //Username in BASE64 fputs($fp, base64_encode($_MAIL["user"])."\r\n"); $result = fgets($fp, 1024); if ($result+0 != 250 AND $result+0 != 334) die("Username Statuscode: ".$result); //Password in BASE64 fputs($fp, base64_encode($_MAIL["pass"])."\r\n"); $result = fgets($fp, 1024); if ($result+0 != 250 AND $result+0 != 235) die("Password Statuscode: ".$result); //Mail-Von fputs($fp, "MAIL FROM: <".$sender.">\r\n"); $result = fgets($fp, 1024); if ($result+0 != 250 AND $result+0 != 334) die("MAIL FROM Statuscode: ".$result); //Mail für fputs($fp, "RCPT TO: <".$email.">\r\n"); $result = fgets($fp, 1024); if ($result+0 != 250 AND $result+0!=235) die("RCPT TO: Statuscode: ".$result); fputs($fp, "DATA\r\n"); $result = fgets($fp, 1024); if ($result+0!=354 AND $result+0!=250) die("DATA: Statuscode: ".$result); fputs($fp, $hdr); fputs($fp, $text."\r\n"); fputs($fp, ".\r\n"); $result = fgets($fp, 1024); if ($result+0 != 250) die("DATA(end): Statuscode falsch: $result"); fputs($fp, "QUIT\r\n"); } [/PHP] Kann mir jemand einen Rat geben? Gruß, Jan Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.