2017-04-26 117 views
0

我想发送电子邮件与Phpmailer库。这是非常基本的,但无法处理。phpmailer - ajax发送电子邮件参数不工作

这是我的javascript代码。

function sendemail() { 
    var $adtext = $("#ad").val(); 
     var $gonderentext = $("#mail").val(); 
     var $mesajtext = $("#mesaj").val(); 
    $.ajax({ 

     url: '/mail.php', 
     type: 'post', 
     data:{action:'call_this', ad: $adtext, gonderen: $gonderentext, mesaj: $mesajtext}, 
     success:function(html) { 
     alert("İletişim mailiniz gönderildi."); 
     } 


    }); 

}

这里是我的PHP文件(mail.php)

<?php 
include("class.phpmailer.php"); 
include("class.pop3.php"); 
include("class.smtp.php"); 
if($_POST['action'] == 'call_this') { 
SendMailWithGmailSMTP("[email protected]","İletişim Mail",$_POST['mesaj'],$_POST['mail']); 


}; 




function SendMailWithGmailSMTP($to,$subject,$text,$maill) 
{ 
$mail=new PHPMailer(); 
$mail->IsSMTP(); 
$mail->SMTPAuth=true; 
$mail->Host="ssl://pro06.ni.net.tr:465"; 
$mail->Username="[email protected]"; 
$mail->Password="xxx"; 
$mail->From=$maill; 
$mail->FromName=$text; 
$mail->CharSet="iso-8859-9"; 
$mail->AddAddress($to); 
$mail->Subject=$subject; 
$mail->IsHTML(true); 
$mail->Body=$text; 
if($mail->Send()) return true; 
else echo $mail->ErrorInfo; 

} 




?> 

能否请你帮我弄清楚什么是错的?提前致谢。祝你有个美好的夜晚。

+0

你得到'$ mail-> ErrorInfo;'这里有什么错误? –

+0

将代码基于PHPMailer提供的示例;它看起来像你从别的地方使用过一些非常古老的代码。 PHPMailer不慢,但SMTP可以。 – Synchro

回答

1

我相信,问题是你正在使用错误的PARAM作为$_POST['mail']而不是$_POST['gonderen']您发送您的ajax后的数据

试着改变你的PHP一行:

SendMailWithGmailSMTP("[email protected]","İletişim Mail",$_POST['mesaj'],$_POST['gonderen']); 

而且,让我知道你是否在这条线上有任何错误$mail->ErrorInfo;在这里!

+0

尝试过,仍然没有寿。我没有得到任何errorInfo回来。也许phpmailer有点慢? –

+1

尝试'echo“if”;退出'和'回声'其他';退出;'内部'如果'和'else'条件并让我知道你的代码在哪里?此外,如果代码正在执行'if',那么请检查您的电子邮件'垃圾邮件'以及 –

0

这是我的不好。与我的主机提供商联系,发现我使用的是错误的端口。感谢大家。