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
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden