Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

PHP mail() Datei versenden

Frage Entwicklung PHP

Mitglied: simon-ni

simon-ni (Level 1) - Jetzt verbinden

10.09.2014, aktualisiert 14.10.2014, 2647 Aufrufe, 3 Kommentare

Hallo Leute,

ich habe ein kleines PHP Script zum versenden eines Formulars geschrieben/zusammenkopiert (bin leider PHP Anfänger). Das hat bis jetzt sehr gut funktioniert, allerdings muss ich eine Funktion zum Anhängen von Dateien einbauen, er bringt zwar keinen Fehler, allerdings kommt die Mail nicht an. Wird auf einem 1und1 Server gehostet, liegt also vermutlich nicht an einer Einstellung auf dem Server sondern an meinem Code.

Dateigrößen und Dateiformat überprüfung werd ich noch einbauen.

01.
  
02.
<?php 
03.
if (isset($_POST["submit"])) 
04.
{  
05.
 
06.
    $an =  "****@gmail.com";  
07.
    $name = $_POST['name']; 
08.
    $firma = $_POST['company']; 
09.
    $strasse = $_POST['street']; 
10.
    $stadt = $_POST['city']; 
11.
    $telefon = $_POST['phone']; 
12.
    $email = $_POST['email']; 
13.
    $message = $_POST['message']; 
14.
 
15.
    if (!empty($name) && !empty($message)) { 
16.
 
17.
 
18.
        $mail_header = 'From:' . $name . "\n"
19.
        $mail_header .= 'Content-type: multipart/mixed; charset=UTF-8' . "\r\n"
20.
        $mail_header .= "Content-Transfer-Encoding: 7bit\n\n"
21.
 
22.
        if (empty($company)) {$company = "leer"; }; 
23.
        if (empty($street)) {$street = "leer"; }; 
24.
        if (empty($city)) {$city = "leer"; }; 
25.
        if (empty($phone)) {$phone = "leer"; }; 
26.
        if (empty($email)) {$email = "leer"; }; 
27.
 
28.
        $message = " 
29.
        Name:            $name\n 
30.
        Firma:           $company\n 
31.
        Straße:          $street\n 
32.
        Stadt:           $city\n 
33.
        Telefon:         $phone\n 
34.
        E-Mail:          $email\n 
35.
        Nachricht:       $message\n 
36.
        "; 
37.
 
38.
        if($_FILES["attachment"]["name"] != "")   {   
39.
            $strFilesName = $_FILES["attachment"]["name"];   
40.
            $strContent = chunk_split(base64_encode(file_get_contents($_FILES["attachment"]["tmp_name"])));    
41.
            $mail_header .= "Content-Type: application/octet-stream; name=\"".$strFilesName."\"\n";   
42.
            $mail_header .= "Content-Transfer-Encoding: base64\n";   
43.
            $mail_header .= "Content-Disposition: attachment; filename=\"".$strFilesName."\"\n\n";   
44.
            $mail_header .= $strContent."\n\n";   
45.
         }        
46.
 
47.
        // Verschicken der Mail  
48.
        $flgSend = @mail($an, $message,$mail_header ); 
49.
         
50.
        if($flgSend)   
51.
            {   
52.
            echo "Mail send completed.";   
53.
            }   
54.
            else   
55.
            {   
56.
            echo "Cannot send mail.";   
57.
            }   
58.
 
59.
        } else {  
60.
            echo "<div class=\"red\">Bitte füllen Sie das Formular vollständig aus.</div>"
61.
    }; 
62.
}; 
63.
?>
Hier der HTML Code in der gleichen Datei, hier wird aber alles richtig übergeben, wenn ich die Variablen ausgebe zeigt er auch alles an was enthalten sein sollte, auch die Datei.


01.
  
02.
<form id="contact_form" action="" method="post" enctype="multipart/form-data" name="contact_form" class="col-xs-10 col-xs-offset-1 col-sm-8 col-sm-offset-2 col-md-6 col-md-offset-3"> 
03.
                <div class="form-group"> 
04.
                    <input id="name" class="form-control" type="text" name="name" value="" placeholder="Name"/> 
05.
                </div> 
06.
                <div class="form-group"> 
07.
                    <input id="company" class="form-control" type="text" name="company" value="" placeholder="Firma (Optional)" /> 
08.
                </div> 
09.
                <div class="form-group"> 
10.
                    <input id="street" class="form-control" type="text" name="street" value="" placeholder="Straße + Nr. (Optional)" /> 
11.
                </div> 
12.
                <div class="form-group"> 
13.
                    <input id="city" class="form-control" type="text" name="city" value="" placeholder="PLZ + Ort (Optional)"   /> 
14.
                </div> 
15.
                <div class="form-group"> 
16.
                    <input id="phone" class="form-control" type="text" name="phone" value="" placeholder="Telefon (Optional)" /> 
17.
                </div> 
18.
                <div class="form-group"> 
19.
                    <input id="email" class="form-control" type="text" name="email" value="" placeholder="E-Mail (Optional)" /> 
20.
                </div> 
21.
                <div class="form-group"> 
22.
                    <textarea id="message" class="form-control" type="text" name="message" rows="12" cols="20" placeholder="Nachricht"/></textarea> 
23.
                </div> 
24.
                <div class="form-group"> 
25.
                    <input id="attachment" type="file" name="attachment" placeholder="Datei (max. 10 MB)" size="45" /> 
26.
                </div> 
27.
                <div class="form-group"> 
28.
                    <input id="submit" class="btn btn-primary" type="submit" name="submit" value="VERSENDEN" /> 
29.
                </div> 
30.
                <div class="clear"></div> 
31.
            </form> 
32.
 

Ich hoffe das ist nicht zu viel Aufwand.

Viele Grüße aus dem Allgäu
Nico
Mitglied: simon-ni
10.09.2014 um 14:07 Uhr
Wenn ich keine Datei Anhänge versendet er es, allerdings ist der Inhalt im Betreff. Ich vermute das hier

01.
$flgSend = @mail($an, $message,$mail_header ); 
etwas nicht passt. Hab auf php.net geschaut, komme trotzdem nicht weiter...
Bitte warten ..
Mitglied: Arano
LÖSUNG 10.09.2014, aktualisiert 14.10.2014
Hallo Simon...
...dann musst du noch einmal ins Manual schauen: http://de2.php.net/manual/en/function.mail.php
Denn dort steht doch das der zweite Parameter der Betreff sein soll, du allerdings übergibst ihr an dieser Stelle die Message !

Darüber hinaus wird der E-Mail-Inhalt nicht als Kopfversendet, schick dir doch einfach mal selber eine Mail mit einem Dateianhang und sie dir dann den Quelltext an
Und zusätzlich nach den Stichworten: "multipart" und "boundary" suchen.

Viel Erfolg,
schönen Gruß von der Arbeit
~Arano
Bitte warten ..
Mitglied: simon-ni
14.10.2014 um 11:18 Uhr
Hallo,

habs leider nicht hinbekommen. Da der Dateianhang nicht zwingend notwendig ist hab ichs weggelassen. So funktioniert es einwandfrei.

Trotzdem vielen Dank.
Bitte warten ..
Ähnliche Inhalte
PHP
PHP erzeugte Datei gleich als Email versenden
gelöst Frage von facebrakerPHP4 Kommentare

Guten Morgen, entweder bin ich noch nicht richtig wach oder ich mache mir Probleme, die es nicht gibt. Ich ...

Tipps & Tricks
JPG-Dateien betrachten aber nicht per E-Mail versenden
Frage von lokoko24Tipps & Tricks2 Kommentare

Hallo zusammen, brauche einen Rat. Meine Eltern benötigen auf ihrem PC ein paar JPG-Dateien von mir. Gibt es eine ...

Batch & Shell
Wie kann ich eine Mail über Blat versenden mit Batch
gelöst Frage von Dreamkiller112Batch & Shell8 Kommentare

Hallo, Hey ich benötige drigend Hilfe ich habe das Problem ich möchte eine Batch-Datei erstellen mit der ich eine ...

E-Mail
HMail Server: kann keine Mails versenden
gelöst Frage von qualidatE-Mail

Eigentlich ist es nicht das erste Mal, dass ich einen HMail Server einrichte, diesmal ist es wie verhext. Also ...

Neue Wissensbeiträge
Erkennung und -Abwehr

Necur-Botnet soll Erpressungstrojaner Scarab massenhaft verbreiten

Information von BassFishFox vor 12 StundenErkennung und -Abwehr

12,5 Millionen Spam-Mails aus einem Bot-Netz mit 6 Millionen Computern? Eigentlich eine schwache Leistung. Die Erpresser setzen dabei auf ...

Microsoft

Nadeldrucker-Problem unter Windows - Microsoft liefert Updates

Information von BassFishFox vor 12 StundenMicrosoft

Hat ja nicht lange gedauert. Nachdem die November-Updates für Windows 7, 8.1 und 10 zahlreiche Nadeldrucker lahmgelegt hatten, stellt ...

Linux

Limux-Ende in München: Wie ein Linux Projekt unter Ausschluss der Öffentlichkeit zerstört wurde

Information von Frank vor 20 StundenLinux14 Kommentare

Mein persönlicher Kommentar zum Thema "Limux-Ende". Die SPD-Politikerin Anne Hübner hat die Richtung von München ganz klar definiert: "Wir ...

Batch & Shell

Open Object Rexx: Eine mittlerweile fast vergessene Skriptsprache aus dem Mainframebereich

Information von Penny.Cilin vor 1 TagBatch & Shell9 Kommentare

Ich kann mich noch sehr gut an diese Skriptsprache erinnern und nutze diese auch heute ab und an noch. ...

Heiß diskutierte Inhalte
Windows Server
Kann man im KMS nachschauen , wieviele Clients den Key in Anspruch genommen haben
gelöst Frage von rainergugusWindows Server15 Kommentare

Hallo, wir haben einen KMS Windows 10 Key. Dieser ist ja W7 kompatibel. Aber unser Windows 7 Pool registriert ...

Router & Routing
Zwei Netzwerke erstellen
Frage von bunteblumeRouter & Routing14 Kommentare

Hallo Zusammen, Ich möchte gerne ein backup von einem bestimmten Folder welcher auf dem Server regelmässig synchronisiert wird auf ...

Linux
Limux-Ende in München: Wie ein Linux Projekt unter Ausschluss der Öffentlichkeit zerstört wurde
Information von FrankLinux14 Kommentare

Mein persönlicher Kommentar zum Thema "Limux-Ende". Die SPD-Politikerin Anne Hübner hat die Richtung von München ganz klar definiert: "Wir ...

Off Topic
Fachkräftemangel in Deutschland? - Talentschmiede schreibt alle 2 Tage die gleichen Stellen aus
Frage von Penny.CilinOff Topic12 Kommentare

Hallo, haben wir in Deutschland Fachkräftemangel? Die Talentschmiede schreibt gefühlt alle zwei Tage dieselben Stellen aus. Und das schon ...