php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2004

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 04.11.2004, 16:57  
Gast
 
Beiträge: n/a
Standard email mit attachement versenden

hallo zusammen

also ich habe ein "kleines" problem.

und zwar habe ich ein formular, in dem ich eine datei angeben kann, die mit dem email verschickt wird. das wird auch getan.
es kommt ein email an mit einem anhang namens "phpRH5vEq" oder ähnlichem. wenn ich die datei in "phpRH5vEq.gif", also mit der richtigen dateiendung umbenenne, dann ist das schon die richtige datei.

wie kann ich das aber machen, dass die datei mit der endung mitgeschickt wird?

so mache ich das mit dem versenden:

das formular
Code:
<input name="datei" type="file">
die aufgerufene datei nach 'submit'
Code:
$m->Attach( "$datei", "image/gif,image/jpeg,x-zip-compressed" ) ;
die zugehörigen libs, die in einer seperaten datei verwendet werden

Code:
function Attach( $filename, $filetype = "", $disposition = "inline" )
{
	// TODO : si filetype="", alors chercher dans un tablo de MT connus / extension du fichier
	if( $filetype == "" )

                  $filetype = "application/x-unknown-content-type";

	$this->aattach[] = $filename;
	$this->actype[] = $filetype;
	$this->adispo[] = $disposition;
}
Code:
function _build_attachement()
{

	$this->xheaders["Content-Type"] = "multipart/mixed;\n boundary=\"$this->boundary\"";

	$this->fullBody = "This is a multi-part message in MIME format.\n--$this->boundary\n";
	$this->fullBody .= "Content-Type: text/plain; charset=$this->charset\nContent-Transfer-Encoding: $this->ctencoding\n\n" . $this->body ."\n";

	$sep= chr(13) . chr(10);

	$ata= array();
	$k=0;

	// for each attached file, do...
	for( $i=0; $i < count( $this->aattach); $i++ ) {

		$filename = $this->aattach[$i];
		$basename = basename($filename);
		$ctype = $this->actype[$i];	// content-type
		$disposition = $this->adispo[$i];

		if( ! file_exists( $filename) ) {
			echo "Class Mail, method attach : file $filename can't be found"; exit;
		}
		$subhdr= "--$this->boundary\nContent-type: $ctype;\n name=\"$basename\"\nContent-Transfer-Encoding: base64\nContent-Disposition: $disposition;\n  filename=\"$basename\"\n";
		$ata[$k++] = $subhdr;
		// non encoded line length
		$linesz= filesize( $filename)+1;
		$fp= fopen( $filename, 'r' );
		$ata[$k++] = chunk_split(base64_encode(fread( $fp, $linesz)));
		fclose($fp);

	}
	$this->fullBody .= implode($sep, $ata);
}
ich hoffe das sind genügend infos...
danke!

doni
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 05.11.2004, 10:33  
Gast
 
Beiträge: n/a
Standard

basename() schneidet dir die endung ab .. verwende statt dessen pathinfo() und dann haste in $array['basename'] den dateinamen + die endung.
 
Alt 11.11.2004, 10:35  
Gast
 
Beiträge: n/a
Standard

merci, bin schonmal weiter: ich hab 'ne extenstion.

nur leider die falsche.

es wird nun eine datei namens "xyxyxy.dat" angehängt, wobei xyxyxy natürlich immer anders ist.

wie kann ich die echte extenstion mitschicken?

danke!
doni
 
Alt 11.11.2004, 10:56  
Gast
 
Beiträge: n/a
Standard

indem du den code an der richtigen stelle platzierst .. ausser dir weis im moment
keiner welche funktion du wo an welcher stelle worauf anwendest.
 
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
PLZ überprüfen und Email versenden PHP Tipps 2007 8 25.12.2005 10:50
Email mittels PHP versenden PHP Tipps 2005-2 6 16.09.2005 14:35
problem beim versenden einer pdf als email anhang Sclot PHP Tipps 2005-2 6 06.09.2005 11:56
Bild per email über Formular versenden PHP Tipps 2005-2 8 30.07.2005 14:46
email versenden mit funktion mail() PHP Tipps 2005 6 20.05.2005 17:38
Benutzer ändern und Email versenden Mano PHP Tipps 2005 13 05.04.2005 20:37
link per email versenden PHP Tipps 2005 5 13.03.2005 08:30
Fehlermeldungen abfangen und als email versenden? Calli PHP Tipps 2005 2 28.02.2005 10:23
[Erledigt] email versenden und empfangen PHP Tipps 2005 2 21.02.2005 17:44
Link in Email versenden. Sonderzeichen?? bicpi PHP-Fortgeschrittene 18 03.02.2005 12:20
Zeitversetzte Email versenden pcschröda PHP-Fortgeschrittene 9 29.01.2005 05:47
mit php email versenden PHP Tipps 2005 6 06.01.2005 16:52
[Erledigt] Datenbank per email versenden PHP Tipps 2004-2 1 23.11.2004 15:46
Ganz einfach eine Email über Kontaktformular versenden. Wie? 'progman' PHP Tipps 2004-2 1 07.11.2004 17:11
Versenden der Website per Email PHP Tipps 2004 2 30.06.2004 14:39

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
http://www.php.de/php-tipps-2004/11744-email-mit-attachement-versenden.html, php email mehrere dateien als attachement, wie kann ich filename versenden, attach($filename,$filetype=\\,$disposition=\inline\, x-unknown-content-type-dateien, filetype pdf application/x-unknown, php mehrere dateien als attachement verschicken, größe attachment verschicken email, php mail dateiname versenden, mail mit attachement versenden, formular bild per email versenden, php bild als attachement versenden, homepage als email verschicken, kontaktformular code php attachement, mail attachement content-type name filename basename, email mit attachement verschicken, mail -s attachement versenden, formular attachement, attachment mit formular mitschicken, viele dateien in emails verschicken

Alle Zeitangaben in WEZ +2. Es ist jetzt 02:13 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.