SMTP Fehler : lost connection

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • SMTP Fehler : lost connection

    Hallo Community,
    habe hier ein schier unlösbares Problem. Ich möchte über meinen Mailserver (Mandrake 10.0) E-Mails direkt über SMTP verschicken. Dazu benutze ich fsockopen() und fputs(). Wenn ich Mails ohne Anhang oder mit genau einem Anhang verschicke, funzt alles Problemlos. Sobald ich mehr als einen Anhang anfüge, bekomme ich eine Fehlermeldung (lost connection after DATA). Scheinbar stimmt etwas mit der Schleife nicht, obwohl beim Versand von EINEM Anhang kein Problem auftritt. Hat jemand eine Idee??

    hier mal ein Auszug vom Script:
    PHP-Code:
    $from explode(":"$this->new_from);
    $boundary "=_Next_Part_";
    //------------------------------------------------------------------------------------------------------------------

    $handle fsockopen("localhost"25$errno$errstr30);
    fputs($handle"EHLO h-server-technik.de\r\n");
    fputs($handle"MAIL FROM: <".$from[1].">\r\n");
    fputs($handle"RCPT TO: <".$this->new_to.">\r\n");
    fputs($handle"DATA\r\n");
        
    fputs($handle"Subject: ".$this->new_subject."\r\n");
        
    fputs($handle"From: ".$from[0]." <".$from[1].">\r\n");
        
    fputs($handle"To: ".$this->new_to."\r\n");
        
    fputs($handle"Cc: ".$this->new_cc."\r\n");
        if(
    sizeof($this->attachments)== 0)
        {
        
    fputs($handle"Content-Type: text/plain; charset=\"iso-8859-1\"\r\n");
        
    fputs($handle"Content-Transfer-Encoding: 7bit\r\n\r\n");
        
    fputs($handle$this->new_message."\r\n");
        }
        else
            {
            
    fputs($handle"Content-Type: multipart/mixed; boundary=\"$boundary\"\r\n");
            
    fputs($handle"MIME-Version: 1.0\r\n");
            
    fputs($handle"--".$boundary."\r\n");
            
    fputs($handle"Content-Type: text/plain; charset=\"iso-8859-1\"\r\n");
            
    fputs($handle"Content-Transfer-Encoding: 7bit\r\n\r\n");
            
    fputs($handle$this->new_message."\r\n");
            
    fputs($handle"\r\n");
            for(
    $i=0;$i<count($this->attachments);$i++)
            {
            
    fputs($handle"\r\n\r\n");
            
    fputs($handle"--".$boundary."\r\n");
            
    fputs($handle"Content-Disposition: attachment; filename=\"".$this->attachments[$i]->filename."\"\r\n");
            
    fputs($handle"Content-Type: ".$this->attachments[$i]->type."; name=\"".$this->attachments[$i]->filename."\"\r\n");
            
    fputs($handle"Content-Transfer-Encoding: base64\r\n\r\n");
            
    fputs($handleimap_binary($this->attachments[$i]->data)."\r\n\r\n");
            
    fputs($handle"--".$boundary."\r\n");
            }
            }
    fputs($handle".\r\n");
    #fputs($handle, "\r\n.\r\n");
    fputs($handle"QUIT\r\n");
    fclose($handle); 
    Bin für jeden Vorschlag Dankbar.
    Zuletzt geändert von hofuwe; 05.10.2004, 14:32.

  • #2
    Moin, es dreht sich wohl um die for Schleife:
    PHP-Code:
     for($i=0;$i<count($this->attachments);$i++) 
    Was gibt denn count($this->attachments) zurück?
    nimm das evtl, aus dem Kopf raus und try it this way
    PHP-Code:
    $this_count count($this->attachments);
    for(
    $i=0;$this_count;$i++) 
    Vier Zeilen weiter schreibst Du filename=\"".$ihis->
    du meinst wohl $this ?
    Ansonsten seh ich nix
    Wie gesagt, check mal was deine count Funktion zurückgibt.
    Viel Glück
    Wendel
    Das Leben ist kein Ponyhof.

    Kommentar


    • #3
      Die count() function gibt die Anzahl der Attachments zurück, so wie ich es auch erwarte. Daran liegt es nicht, da ich Deinen Vorschlag schon probiert hatte. Das mit dem "$ihis->" war nur ein Kopierfehler, im Script steht natürlich "$this->". Bin wie gesagt schon ca. eine Woche am grübeln und testen.
      Trotzdem Danke
      Uwe

      Kommentar

      Lädt...
      X