2016-05-07 17 views
1

私は簡単な連絡先フォームでPHPMailerを使用しています。私はjQuery AJAXを使用しています。コンタクトフォームはAJAXと一緒に期待どおりに動作し、今はすべてが機能しているのでこの問題に取り組んでいます。AJAXでPHPMailerが添付ファイルを送信しない

添付ファイルは、AJAX経由でフォームを送信する際にPHPMailerから送信された電子メールには含まれません。

jQuery AJAXでフォームを送信するときに添付ファイルを送信するにはどうすればよいですか?

+0

PHPMailerはAjaxとは関係ありません。単に間違ったアップロードを処理しているだけです。 PHPMailerで提供されている複数のファイルアップロードの例に基づいてコードを作成します。 – Synchro

+0

PHPがform-4ファイルをform_4_fileに変更しているかもしれません。これは役に立つかもしれないhttp://stackoverflow.com/questions/1436166/php-replace-dashes-in-object-variables-with-underscores – Steve

+0

これはどういう意味ですか?入力フィールドに ' - 'を付けることはできません。なぜ私の添付ファイルが送信されないのですか? – guub

答えて

1

メールのヘッダーを設定する必要があります。いくつかのヘッダーの例は次のとおりです。 -

$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

少なくともmime-version、content-type、content-transfer-encoding、content-dispositionはそこにあるはずです –

+1

PHPMailerはすべてのことを処理します。 – Synchro

関連する問題