mail() und Anhang?

ich hab mal ne ganz einfache Frage jetzt zu dem Script:
Ich möchte ja, wie Eingangs erwänht, ein Script haben, das mir aus einem Ordner (bei mir upload/) eine zuvor hochgeladene Datei nimmt (deren Pfad ich in einer session habe) und an alle zu verschickenden Mails dranklatscht. Die Datei ist nur ein pdf (und soll auch gar nix anderes sein).

Kann man das nicht viiiel einfacher machen? Ich mein, dein Script, Hut ab, das sieht profeimäßig aus, aber ich weiß nicht, ob es überhaupt jetzt mein Problem löst.

Ich hab bei meinem gegoogle Seiten gefunden, wo einfach nur gesagt wurde, dass man den Header der Mail verändern müsse und dann das Attachment dranhängen könne.
Kann ich nicht eifnach sowas leichtes machen?

Sorry, aber ich blick halt da jetzt grad absolut net durch, ich dachte, dass geht irgendwie ganz leicht und ganz schnell... :(
 
Fuer den Fall wuerde es reichen wenn Du die entsprechenden Teile des Scripts nimmst und fuer Deinen Zweck anpasst.
Das Script ist fuer einen Webmailer entstanden, ist also eher darauf ausgelegt, dass Dateien vom User hochgeladen und angehangen werden, und weniger darauf, dass die Datei schon auf dem Server liegt.

Die fuer Dich interessante Funktion duerfte hierbei send() sein.
 
Ich würde dir Nahe legen, dir die Grundlagen von OOP und Funktionen einmal genauer anzuschauen.
Deine Änderungen an der Klasse machen keinen Sinn (Variablen innerhalb der Methoden nicht bekannt, da nicht übergeben; Klassen schreibt man generell nicht um, man extended sie höchstens).

Du solltest ein wenig mehr Zeit in das Lesen von Anleitungen investieren.
Die 500 Zeilen Code von Phpmailer brauchen dich nicht zu interessieren, da du die Klasse nur anwenden sollst. Wie das geht steht in den Docs.
 
:suspekt: :eek: :confused: :confused: :confused: :confused:
ich blick nichts mehr....
ich hab jetzt das, was unter der function send() stand genommen, und mal in den Code eingebaut. Jetzt sieht das im Prinzip so aus:
PHP:
<?
include("config.php");

        $body=$text;
        $body.="\n\n";
        $email="";
        $email.="Content-class: urn:content-classes:message";
        $email.="\nUser-Agent: Mail";
        $email.="\nMIME-Version: 1.0";
        $email.="\nContent-Type: multipart/mixed;\n\tboundary=--========1234567";
        $email.="\nFrom: ".$frommail;
        $email.="\nX-Priority: 3 (Normal)";
        $email.="\nImportance: Normal";
        $email.="\n\n--========1234567";
        $email.="\nContent-Type: text/html;\n\tcharset=\"iso-8859-1\"";
        $email.="\nContent-Transfer-Encoding: quoted-printable";
        $email.="\nContent-Disposition: inline";
        $email.="\n\n".$body;
        $email.="\n\n--========1234567";
        
                $file=fopen($temp_ordner."/".$_SESSION["datei"],"r");
                $content=fread($file,filesize($temp_ordner."/".$_SESSION["datei"]));
                fclose($file);
                $encodedfile=chunk_split(base64_encode($content));
                $email.="\nContent-Type: application/octet-stream;\n\tname=\"".$_SESSION["datei"]."\"";
                $email.="\nContent-Transfer-Encoding: base64";
                $email.="\nContent-Description: ".$_SESSION["datei"];
                $email.="\nContent-Disposition: attachment;\n\tfilename=\"".$_SESSION["datei"]."\"";
                $email.="\n\n".$encodedfile."\n\n--========1234567";
                $email.="--";
                
        mail($data["mail"],$header,"",$email);
?>

Jetzt kommt ne leere Mail ohne Anhang an
was ist denn jetzt schon wieder los? ich glaub ich verzweifle langsam.

das Script stimmt denk ich jetzt für meine Bedürfnisse (also die Datei in der session als Mailanhang zu verschicken), aber wo klemmts denn jetzt schon wieder? :(
ich weiß, langsam beginn ich zu nerven.....
 
Zuletzt bearbeitet:
PHP:
<? 
include("config.php"); 

		$id=md5(uniqid()); 
		$body=imap_8bit($text); 
		$body.="\n\n";
		$boundary = "----";
		$boundary .= $id;
		$email=""; 
		$email.="Content-class: urn:content-classes:message"; 
		$email.="\nUser-Agent: Mail"; 
		$email.="\nMIME-Version: 1.0"; 
		$email.="\nContent-Type: multipart/mixed;\n\tboundary=\"".$boundary."\""; 
		$email.="\nFrom: ".$frommail; 
		$email.="\nX-Priority: 3 (Normal)"; 
		$email.="\nImportance: Normal"; 
		$email.="\n\n--".$boundary; 
		$email.="\nContent-Type: text/html;\n\tcharset=\"iso-8859-1\""; 
		$email.="\nContent-Transfer-Encoding: quoted-printable"; 
		$email.="\nContent-Disposition: inline"; 
		$email.="\n\n".$body; 
		$email.="\n\n--".$boundary; 
		 
				$file=fopen($temp_ordner.$_SESSION["datei"],"r"); 
				$content=fread($file,filesize($temp_ordner.$_SESSION["datei"])); 
				fclose($file); 
				$encodedfile=chunk_split(base64_encode($content)); 
				$email.="\nContent-Type: application/octet-stream;\n\tname=\"".$_SESSION["datei"]."\""; 
				$email.="\nContent-Transfer-Encoding: base64"; 
				$email.="\nContent-Description: ".$_SESSION["datei"]; 
				$email.="\nContent-Disposition: attachment;\n\tfilename=\"".$_SESSION["datei"]."\""; 
				$email.="\n\n".$encodedfile."\n\n--".$boundary; 
				$email.="--"; 
				 
		imap_mail($data["mail"],$header,"",$email); 
?>
 
PHP:
<? 
include("config.php"); 

        $id=md5(uniqid(9)); 
        $boundary = "----";
        $boundary .= $id;
        $email=""; 
        $email.="Content-class: urn:content-classes:message"; 
        $email.="\nUser-Agent: Mail"; 
        $email.="\nMIME-Version: 1.0"; 
        $email.="\nContent-Type: multipart/mixed;\n\tboundary=\"".$boundary."\""; 
        $email.="\nFrom: ".$frommail; 
        $email.="\nX-Priority: 3 (Normal)"; 
        $email.="\nImportance: Normal"; 
        $email.="\n\n--".$boundary; 
        $email.="\nContent-Type: text/html;\n\tcharset=\"iso-8859-1\""; 
        $email.="\nContent-Transfer-Encoding: quoted-printable"; 
        $email.="\nContent-Disposition: inline"; 
        $email.="\n\n".$text; 
        $email.="\n\n--".$boundary; 
         
                $file=fopen($temp_ordner."/".$_SESSION["datei"],"r"); 
                $content=fread($file,filesize($temp_ordner."/".$_SESSION["datei"])); 
                fclose($file); 
                $encodedfile=chunk_split(base64_encode($content)); 
                $email.="\nContent-Type: application/octet-stream;\n\tname=\"".$_SESSION["datei"]."\""; 
                $email.="\nContent-Transfer-Encoding: base64"; 
                $email.="\nContent-Description: ".$_SESSION["datei"]; 
                $email.="\nContent-Disposition: attachment;\n\tfilename=\"".$_SESSION["datei"]."\""; 
                $email.="\n\n".$encodedfile."\n\n--".$boundary; 
                $email.="--"; 
                 
        mail($data["mail"],$header,"",$email); 
?>

so schauts aus, und was ankommt, ist nur ein Anhang als .dat_Datei (ohne Dateinamen), also nur .dat und ein Mailtext, bei dem die Hälfte fehlt. :(
 
YEAH, der Anhang KOMMT jetzt. es lag ein Fehler in der Session vor!

Aber es fehlt noch eine Sache:
ich habe einen Signatur, die an jeden Text angehängt werden soll. Bei der fehlt aber immer ein zwei Buchstaben, z.B.
tp://stega.funpic.de/newssystem/newsletter.php (ganz am Anfang fehlt plötzlich ht)
die 2 Buchstaben hinter einem '=' Zeichen werden einfach abgeschnitten....
der betreffende Codeabschnitt sieht so aus:
PHP:
$text .= "<A href=".$news_adress."?do=out&mail=".$mail.">hier austragen</a><br>";
was er dann in der Mail schickt, ist folgendes:
Code:
tp://stega.funpic.de/newssystem/newsletter.php?do=t&mail=efan@gaukel-net.de
da fehlen immer die beiden ersten Buchstaben nach der '=' und ganz am Anfang.

warum das jetzt? wenn das klappt, dann bin ich mehr als zufrieden! :rolleyes:
 
Zuletzt bearbeitet:
och mensch, ich blicks nicht mehr. bei web.de stellt er das = gar nicht da, sonderns chreibt ein y mit Pünktchen, in meinem Outlook Express schneidet er nach den = Zeichen die beiden folgenden Buchstaben ab.

Was muss ich machen? Sonst klappt doch alles so schön!
 
Zurück