【发布时间】:2015-11-18 12:14:29
【问题描述】:
正如我在标题中提到的,我想使用 phpmailer 将带有联系表格的邮件发送到 gmail。我已经为我的联系表格编写了代码,下面给出了 sendmail php 文件。
我在 $mail-> Port=465; 行中的 sendemail.php 文件中遇到错误;
contact.html
<script type="text/javascript" src="jquery-2.1.4.min.js"></script>
<script type="text/javascript">
$(function(){
$('input[type=submit]').click(function(){
$.ajax({
url: "sendemail.php",
type: 'POST',
data: $("#myForm").serialize(),
success: function(data){
$('#result').html(data);
}
});
});
});
</script>
<form action="" method="post" onsubmit="return false;" id ="myForm">
<input type="text" class="form-control" required="required" name="guest_name" placeholder="Name">
<input type="text" class="form-control" required="required" name="guest_mail" placeholder="Email address">
<input type="text" class="form-control" required="required" name="guest_cont" placeholder="Contact No.">
<input type="text" class="form-control" required="required" name="guest_comp" placeholder="Company Name">
<textarea name="guest_msg" id="message" required="required" class="form-control" rows="8" placeholder="Enquery or Feedback"></textarea>
<input type="submit" name="submit" value="Submit" class="btn btn-danger btn-lg">
</form>
还有 sendemail.php
<?php
$subject = "Query/Feedback";
$name = $_POST['guest_name'];
$email = $_POST['guest_mail'];
$contact = $_POST['guest_cont'];
$company = $_POST['guest_comp'];
$message = $_POST['guest_msg'];
$email_from = $email;
$email_to = 'rexxxxxxxxxxxxd@gmail.com';
if($sender== '' || $mail_id== '' || $cont_no== '' || $company== '' || $msg_txt== ''){
echo "check the fields";
}else{
$subject='Query from '.$sender;
$message='Dear Sir,<br><br>'.$msg_txt.'<br><br>From: '.$sender.'<br>Contact: '.$cont_no.'<br>Company Name: '.$company;
require "phpmailer/class.phpmailer.php"; //including the phpmailer file
//Installing Class
$mail = new PHPMailer();
// Set up SMTP
$mail->IsSMTP();
$mail->SMTPAuth = true;
$mail->SMTPSecure = "ssl";
$mail->Host = "smtp.gmail.com;"
$mail->Port = 465;
$mail->Encoding = '7bit';
// Authentication
$mail->Username = "mymailid@gmail.com"
$mail->Password = "mypassword"
// Compose
$mail->SetFrom($_POST['guest_mail'], $_POST['guest_name']);
$mail->AddReplyTo($_POST['guest_mail'], $_POST['guest_name']);
$mail->Subject = "/new Contact From Enquery"
$mail->MsgHTML($guest_msg);
// Send To
$mail->AddAddress($email_to, "Banti");
$result = $mail->Send();
if($result)
{
echo "Thank you for your Feedback";
}
}
?>
【问题讨论】:
-
那个端口在服务器上打开了吗?
-
您将让某人向您的目标电子邮件地址发送垃圾邮件致死。什么可以阻止某人编写脚本来不断调用您的 ajax 调用?巨大的 DoS 攻击漏洞。
-
与其重新发明轮子并像你一样承受后果,不如从已知良好的代码开始,比如the gmail example provided with PHPMailer?