1
$(".feedback input.sent").click(function(e) {
  e.preventDefault();
  var name = $(".feedback textarea.name").val();
  var mail = $(".feedback textarea.mail").val();
  var phone = $("feedback textarea.phone").val();
  // the file field probably has to be here somewhere as well?
  var info = $(".feedback textarea.info").val();

  if (name && mail && info) {
    var data = {name: name, mail: mail, phone: phone, info: info};
    // I guess I need to somehow get the file itself to this array to pass it to phpMailer?

    $.post(baseUrl + "templates/feedback.php", data, function() {
      $(".contact-form input, .contact-form textarea").val("");
        console.log("great");
    });
  }
  else {
    console.log("not great");
  }
});

明らかに、複数の添付ファイルを追加する必要がありますが、それらを渡す方法がわかりません$mail->AddAttachment($target_path);。これは、私が支援を必要としているものです。

これを使用して複数のファイルを追加しています。

AddAttachment()を追加するまで、phpMailerは正常に機能します。追加すると、電子メールは送信されません。たとえば、そこに写真へのリンクを追加しました。エラーも出ないので、ここに来ました。

私の主な必要性は、フォームからfeedback.phpファイルにファイルを渡すことです。ここで、メーラーがそれを実行し、すべてを電子メールに添付します。

Feedback.phpファイル:

<?php

require_once "phpmailer.inc.php";

if ($_POST['name'] && $_POST['info']) {
  $message = "";
  $message .= "Name:\n" . $_POST['name'] . "\n\n";
  $message .= "E-Mail:\n" . $_POST['mail'] . "\n\n";
  $message .= "Phone:\n" . $_POST['phone'] . "\n\n";
  $message .= "Message:\n" . $_POST['info'] . "\n\n";

  $mail = new PHPMailer();

  $mail->IsSMTP();
  $mail->Host     = "xxx.xxx.xxx";

  $mail->Port     = 25;

  $mail->From     = "xxx@xxx.xxx";

  $mail->AddAddress("xxx@xxx.xxx");


  foreach($_FILES as $key => $file){
    $target_path = "uploads/";
    $target_path = $target_path .basename($file['name']);

    if(move_uploaded_file($file['tmp_name'], $target_path)) {
    echo "the file ".basename($file['name'])." has been uploaded";
    }
    else {
     echo "there was an error";
    }
    $mail->AddAttachment($target_path);
  }

  $mail->Subject  = "Feedback";
  $mail->Body     = $message;
  $mail->WordWrap = 50;

  if(!$mail->Send()) {
    echo 'Error.';
    echo 'Problem: ' . $mail->ErrorInfo;
  } else {
    echo 'Good';
  }

}

?>

そこのアタッチメント部分についてはよくわかりません。ここのどこかで見つけましたが、ファンシーループなしで使用してもうまくいきません...

4

0 に答える 0