PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP Grundlagen (http://www.selfphp.de/forum/forumdisplay.php?f=12)
-   -   per Formular Dateien versenden zu einer Email (http://www.selfphp.de/forum/showthread.php?t=22528)

Raul 07.12.2009 00:57:48

per Formular Dateien versenden zu einer Email
 
Hallo,

ich möchte von einem Formular Dateien, Bilder zu der Empfängeremailadresse senden. Das geht mit dem Textfeldern, jedoch nicht mit den Dateianhängen.
Evt. habe ich ein Fehler im Script, mit den Register_Globals on off und Php 4 oder 5 habe ich auch probiert, daran liegt es erstemal nicht denke ich.

HTML-Code:

<form method="POST" enctype="multipart/form-data" action="formular.php3" target="Hauptteil">
                        <div align="center">
                                <textarea wrap=PHYSICAL id="Formularmehrfachlinie2" name="Text" rows=6 cols=67></textarea><br>
                                Bild1 <INPUT TYPE="file" SIZE=30 maxlength=200 NAME="bild1">
                                <TABLE ID="Tabelle9" BORDER=0 CELLSPACING=3 CELLPADDING=1 WIDTH=169>
                                        <TR>
                                                <TD WIDTH=77>
                                                        <P><INPUT TYPE=SUBMIT NAME="senden" VALUE="senden" ID="Formularknopf3">
    &nbsp;
                                                </TD>
                                                <TD WIDTH=79>
                                                        <P><INPUT TYPE=RESET NAME="loeschen" VALUE="löschen" ID="Formularknopf4">
    &nbsp;
                                                </TD>
                                        </TR>
                                </TABLE>
                        </div>
                </FORM>

Obwohl ich denke, es liegt nicht am html COde.

PHP-Code:

<?

$mail= "";

$mail = "Guten Tag,\nhier eine Nachricht :\n\n";

$mail = "$mail Text:\n";

$mail = "$mail ".$_POST['Text']."\n\n";


if(strlen($bild1) > 0 && strlen($bild1_name) > 0 && $bild1_size > 0)

{

$bilder_anzeigen = "../images/";

$bildname = strtolower($bild1_name);

$bildname = ereg_replace("ä","ae",$bildname);

$bildname = ereg_replace("ö","ue",$bildname);

$bildname = ereg_replace("ü","ue",$bildname);

$bildname = ereg_replace("ß","ss",$bildname);

$bildname = ereg_replace(" ","_",$bildname);

$bildname_check = "$bilder_anzeigen$bildname";

$vorhanden = file_exists($bildname_check);

$bild_zaehler = 0;

while ($vorhanden == 1)

{

$bild_zaehler++;

$bildname_check = ("$bilder_anzeigen" . "$bild_zaehler" . "_" . "$bildname"); 

$vorhanden = file_exists($bildname_check);

}

$bildname1 = $bildname_check;

rename($bild1, $bildname1);

}


if (!empty($bildname1))

{

$bildname1 = ereg_replace("\.\./", "", $bildname1);

$mail .= "Bild-1: $bildname1\n";

}


Mail("info@email.de","Eine Nachricht", $mail );


?>

Vielleicht bin ich etwas Betriebsblind.

Gruss, Raul

phpcoder 07.12.2009 17:41:33

AW: per Formular Dateien versenden zu einer Email
 
Hallo Raul,

ich habe eben mal ein Php Tutorial geschrieben, wie man eine E-Mail mit einem Dateianhang versendet. Das Php Tutorial findest Du unter: http://www.php-space.info/php-tutori...versenden.html

Grüße Nico

Raul 07.12.2009 21:55:49

AW: per Formular Dateien versenden zu einer Email
 
Hallo Nico,

Danke für Dein Tutorial für das Problem.

Mir kam gestern noch so der Gedanke, das die Bilder ja irgentwo zwischengelagert werden müssen bis diese versendet sind. Evt. habe ich da auch mein Fehler.

Jedoch hast Du noch eine Routine drin, wo es nach dem versenden der Bilder diese vom Server wieder löscht, sonst wird der recht voll mit der Zeit?
Dies wäre eine Verbesserung.

Grüsse, Raul

Raul 08.12.2009 08:06:26

AW: per Formular Dateien versenden zu einer Email
 
@Nico, Habe mal in Ruhe alles durchgeschaut und dabei ist mir aufgefallen dass wir uns Mißverstanden haben. Du meintest eine Datei vom Server per Email zu versenden, eine Dateie die permanent auf dem Server liegt.
Ich meinte wenn jemand ein Formular im Internet ausfüllt und sein Text reinschreibt und eine Möglichkeit hat 5 Bilder anzuhängen und dann das ganze zum Empfänger des Formulares versenden und die Bilder wieder löschen nach versand.

Ich habe zumindest jetzt rausbekommen, warum es nicht geht, es liegt an den Register_Globels off und ein paar Extensionen von den Variablen.

Gruss

phpcoder 08.12.2009 11:27:47

AW: per Formular Dateien versenden zu einer Email
 
Zitat:

Zitat von Raul (Beitrag 132925)
Hallo Nico,

Danke für Dein Tutorial für das Problem.

Mir kam gestern noch so der Gedanke, das die Bilder ja irgentwo zwischengelagert werden müssen bis diese versendet sind. Evt. habe ich da auch mein Fehler.

Jedoch hast Du noch eine Routine drin, wo es nach dem versenden der Bilder diese vom Server wieder löscht, sonst wird der recht voll mit der Zeit?
Dies wäre eine Verbesserung.

Grüsse, Raul

Wenn du die Dateien auf den Server nach dem Versand löschen möchtest, dann schau dir dieses PHP Tutorial: http://www.php-space.info/php-tutori...,loeschen.html an. Zu den anderen Problem, ich hoffe du weißt wie man eine Datei auf den Server lädt, das ist ganz einfach musst dazu vor dem Versand per E-Mail ein Upload machen, diese Datei kannst du dann über eine E-Mail versenden und wieder löschen.

Grüße Nico

Raul 08.12.2009 11:44:11

AW: per Formular Dateien versenden zu einer Email
 
Thema hat sich nun abgeschlossen, ich hatte verschiedene Sachen probiert, jedoch kam immer nur der Code von der Datei an. Nun habe ich den phpmailer eingebaut und ging recht einfach und fix alles. Datei kommt als Dateianhang an.
Danke Dir für Deine Mühe, Gruss, Raul

cortex 08.12.2009 11:57:15

AW: per Formular Dateien versenden zu einer Email
 
Zitat:

Zitat von Raul (Beitrag 132931)
Nun habe ich den phpmailer eingebaut und ging recht einfach und fix alles.

sehr gute idee; mailversand per hand ist - aus allgemeiner erfahrung heraus (siehe forensuche oder suche im netz) - sehr ineffizient.

eine alternative wäre übrigens swiftmailer.

Zitat:

Zitat von Raul (Beitrag 132931)
Thema hat sich nun abgeschlossen [...]

daher: [mod: closed]

cx


Alle Zeitangaben in WEZ +2. Es ist jetzt 12:48:56 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.