$(".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);
我需要帮助的地方。
我正在使用它来添加多个文件。
我的 phpMailer 运行良好,直到我在那里添加 AddAttachment(),然后它不会发送电子邮件。例如,我在那里添加了图片链接。它也没有给我任何错误,这就是我来这里的原因。
我的主要需求仍然是将表单中的任何文件传递给我的 feedback.php 文件,邮件程序在该文件中执行它并将其/它们全部附加到电子邮件中。
反馈.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';
}
}
?>
我真的不确定那里的附件部分,我从这里的某个地方找到了它,但是在没有花哨的循环的情况下使用它并不能很好地工作......