如何将表单信息(包括文件)发送到电子邮件?

时间:2013-01-03 18:58:19

标签: php jquery post upload

<?php

if ($_POST['name'] && $_POST['info']) {
  $message = "";
  $message .= "Nimi:\n" . $_POST['name'] . "\n\n";
  $message .= "E-mail:\n" . $_POST['mail'] . "\n\n";
  $message .= "Phone:\n" . $_POST['phone'] . "\n\n";
  $message .= "File:\n" . $_POST['file'] . "\n\n"; // probably wrong
  $message .= "Message:\n" . $_POST['info'] . "\n\n";

  mail("me@me.me", "blablabla (example.com)", $message, "From: example.com <me@me.me>");
}

我使用jquery-ajax获取所有其他值(从textareas获取val()并将它们发布到process.php文件中),但是如何传递文件并在邮件函数中使用它?

我看过一些插件,但我更喜欢在我已有的代码中添加一些东西,它不会那么难......

$("input.submit").click(function(e) {
  e.preventDefault();
  var name = $(".feedback textarea.name").val();
  var mail = $(".feedback textarea.mail").val();
  var phone = $("feedback textarea.phone").val();
  var file = $("feedback input.file").val(); //probably wrong
  var info = $(".feedback textarea.info").val();

  if (name && mail && info) {
    var data = {name: name, mail: mail, phone: phone, file: file, info: info};

    $.post("process.php", data, function() {
      $("textarea, input").val("");
        alert("thank you for submitting");
    });
  }
  else {
    alert("something is missing");
  }
});

1 个答案:

答案 0 :(得分:0)

所以你想通过AJAX上传文件?这是一个很好的discussion on how you can do that

上传文件后,如果要将文件内容放入电子邮件中,则需要解析HTTPRequest中的文件。如果您要将文件添加为附件,请参阅good reference了解如何完成此操作