我遇到了一个问题。我想用PHPMailer发送邮件,但是我通过jQuery AJAX传递了表单中的值。但是当邮件发送时,我收到的电子邮件中没有我通过AJAX传递的信息。
这是我的JS代码:
$.ajax({
url: post_url,
type: request,
data: {
ime: ucenikOdabrao.ime,
email: ucenikOdabrao.email,
broj: ucenikOdabrao.broj,
grad: ucenikOdabrao.grad,
pol: ucenikOdabrao.pol,
studij: ucenikOdabrao.studij,
faks: ucenikOdabrao.faks,
univerziteti: ucenikOdabrao.univerziteti,
dokumenti: ucenikOdabrao.dokumenti
},
contentType: false, // The content type used when sending data to the server.
cache: false, // To unable request pages to be cached
processData:false,
dataType: "json"
}).done(function(res){
if(res.type == "error"){
alert(res.text);
}
if(res.type == "done"){
alert(res.text);
}
})
我打印出了对象ucenikOdabrao
,它在我的控制台中完全打印出所有数据。
这是我的PHP代码:
require "PHPMailer-master/PHPMailerAutoload.php";
header('Content-Type: application/json');
$ime = $_POST["ime"];
$email = $_POST["email"];
$broj = $_POST["broj"];
$grad = $_POST["grad"];
$pol = $_POST["pol"];
$studij = $_POST["studij"];
$faks = $_POST["faks"];
$univerziteti = $_POST["univerziteti"];
$dokumenti = $_FILES["dokumenti"];
$dokumenti_count = count($dokumenti['name']);
$subject = "Aplikacija za faks - ".$ime;
$body = "Prijava za faks - ".$ime."\n";
$body .= "Email: ".$email."\n";
$body .= "Broj: ".$broj."\n";
$body .= "Grad: ".$grad."\n";
$body .= "Pol: ".$pol."\n";
$body .= "Studij: ".$studij."\n";
$body .= "Faks na koji aplicira: ".$faks."\n";
$body .= "Univerziteti na koje aplicira: ".$univerziteti."\n";
for($x = 0; $x < $dokumenti_count; $x++){
if(!empty($dokumenti['name'][$x])){
if($dokumenti['error'][$x]>0){
print json_encode("Došlo je do greške! Molimo pokušajte ponovo!");
exit;
}
$file_name = $dokumenti['name'][$x];
$file_size = $dokumenti['size'][$x];
$file_type = $dokumenti['type'][$x];
// Čitamo fajl bajo moj
$handle = fopen($dokumenti['tmp_name'][$x], "r");
$content = fread($handle, $file_size);
fclose($handle);
$encoded_content = chunk_split(base64_encode($content));
$body .="Content-Type: $file_type; name=".$file_name."\r\n";
$body .="Content-Disposition: attachment; filename=".$file_name."\r\n";
$body .="Content-Transfer-Encoding: base64\r\n";
$body .="X-Attachment-Id: ".rand(1000,99999)."\r\n\r\n";
$body .= $encoded_content;
}
}
$mail = new PHPMailer();
$mail->isSMTP();
$mail->SMTPDebug = 1;
$mail->SMTPAuth = true;
$mail->SMTPSecure = 'ssl';
$mail->Host = "smtp.gmail.com";
$mail->Port = 465;
$mail->isHTML(true);
$mail->Username = "cccc@gmail.com";
$mail->Password = "passs";
$mail->SetFrom("cccc@gmail.com");
$mail->Subject = $subject;
$mail->Body = $body;
$mail->AddAddress("dddd@gmail.com");
if(!$mail->Send()){
print json_encode(array('type'=>'error', 'text' => 'Došlo je do greške. Molimo pokušajte kasnije!'));
exit;
} else{
print json_encode(array('type'=>'done', 'text' => 'Vaša aplikacija je uspješno poslata!'));
exit;
}
我也有一个问题,我无法在jQuery AJAX函数中获得任何响应。我只是看不出问题出在哪里:/