2016-05-07 15 views
1

Ich benutze PHPMailer auf einem einfachen Kontaktformular, und um dieses Formular zu übermitteln, verwende ich jQuery AJAX. Das Kontaktformular funktioniert wie erwartet mit AJAX, und jetzt, da alles funktioniert, gehe ich dieses Problem an.PHPMailer mit AJAX sendet keine Anlagen

Dateianhänge sind nicht in der E-Mail enthalten, die von PHPMailer gesendet wird, wenn das Formular über AJAX gesendet wird.

Wie kann ich beim Senden des Formulars mit jQuery AJAX auch Anhänge senden?

+0

PHPMailer hat nichts mit Ajax zu tun. Du behandelst die Uploads einfach falsch. Basieren Sie Ihren Code auf dem Beispiel für das Hochladen mehrerer Dateien, das mit PHPMailer bereitgestellt wird. – Synchro

+0

Sie könnten feststellen, dass PHP die Form-4-Datei in form_4_file ändert. Dies könnte nützlich sein http://stackoverflow.com/questions/1436166/php-replace-dashes-in-object-variables-with-underscores – Steve

+0

Was bedeutet das? Ich kann meine Eingabefelder nicht mit '-' benennen? Werden meine Anhänge deshalb nicht gesendet? – guub

Antwort

1

Sie müssen Header der E-Mail festlegen. Einige Header-Beispiele sind unten: -

$header = "From: ".$from_name." <".$from_mail.">\r\n"; 
    $header .= "Reply-To: ".$replyto."\r\n"; 
    $header .= "MIME-Version: 1.0\r\n"; 
    $header .= "Content-Type: multipart/mixed; boundary=\"".$uid."\"\r\n\r\n"; 
    $header .= "This is a multi-part message in MIME format.\r\n"; 
    $header .= "--".$uid."\r\n"; 
    $header .= "Content-type:text/plain; charset=iso-8859-1\r\n"; 
    $header .= "Content-Transfer-Encoding: 7bit\r\n\r\n"; 
    $header .= $message."\r\n\r\n"; 
    $header .= "--".$uid."\r\n"; 
    $header .= "Content-Type: application/octet-stream; name=\"".$filename."\"\r\n"; 
    $header .= "Content-Transfer-Encoding: base64\r\n"; 
    $header .= "Content-Disposition: attachment; filename=\"".$filename."\"\r\n\r\n"; 
    $header .= $content."\r\n\r\n"; 
    $header .= "--".$uid."--"; 
+0

mindestens Mime-Version, Content-Typ, Content-Transfer-Encoding, Content-Disposition sollte dort sein –

+1

PHPMailer befasst sich mit all dem für Sie, keine Notwendigkeit, all das zu tun. – Synchro