通过AJAX发送的PHP PEAR邮件无法正常工作-直接调用邮件脚本可以完美工作
我有一个通过AJAX调用PHP PEAR邮件脚本的web表单。当我直接调用脚本时(通过在浏览器中键入脚本的完整路径),它可以工作。当我从web表单调用脚本时,它会第一次发送,但不会在以后发送 我正在使用smtp。主机具有SSL 网络托管公司确认脚本工作正常,PEAR包的路径工作正常等等 我试过很多东西,读过很多关于这个话题的问题和答案 从browser direct运行脚本似乎做了jquery/ajax设置没有做的事情。Gut feel(我知道很糟糕…)说在使用表单时需要重新初始化某些内容。这是真的吗 另一个线索是Ajax调用后成功函数不会生成警报(见下文)。我将回音写入服务器上的文本文件-这也是间歇性的 任何帮助或想法都会受到极大的欢迎 以下是邮件脚本:通过AJAX发送的PHP PEAR邮件无法正常工作-直接调用邮件脚本可以完美工作,php,jquery,ajax,smtp,pear,Php,Jquery,Ajax,Smtp,Pear,我有一个通过AJAX调用PHP PEAR邮件脚本的web表单。当我直接调用脚本时(通过在浏览器中键入脚本的完整路径),它可以工作。当我从web表单调用脚本时,它会第一次发送,但不会在以后发送 我正在使用smtp。主机具有SSL 网络托管公司确认脚本工作正常,PEAR包的路径工作正常等等 我试过很多东西,读过很多关于这个话题的问题和答案 从browser direct运行脚本似乎做了jquery/ajax设置没有做的事情。Gut feel(我知道很糟糕…)说在使用表单时需要重新初始化某些内容。这是
<?php
/*
contact_form.php
*/
require "Mail.php";
$message = "";
$body = "";
$name = "";
$f_email = "";
$subject = "This is an email";
$name = $_POST['f_name']; // come from jquery
$f_email = $_POST['f_email']; // come from jquery
$message = $_POST['f_message']; // come from jquery
$body = "Sender name: " . $name . "\n";
$body .= "Senders email address: " . $f_email . "\n\n";
$body .= $message;
$from = "Mail from the web form <info@mydomain.com>";
$to = "Info <info@mydomain.com>"; // tried different email accounts including gmail
$host = "smtp.mydomain.com";
$username = "email-username";
$password = "the-password";
$headers = array ('From' => $from,
'To' => $to,
'Subject' => $subject);
$smtp = Mail::factory('smtp',
array ('host' => $host,
'auth' => true,
'username' => $username,
'password' => $password));
$mail = $smtp->send($to, $headers, $body);
$fp = fopen('myerrs.txt', 'a');
fwrite($fp, $body);
fclose($fp);
echo "sent";
?>
谢谢。你能在浏览器开发者工具中看到ajax请求吗?@ramesh不,我看不到调用。web表单与其他内容显示在同一页面上-它们都共享同一个div。在显示web表单之前,我清空了div。阅读此答案后,我改变了方法:我想感谢上面的贡献者,但没有代表:)
$('#contactform').submit(function(){
var f_name = $('#f_name').val();
var f_email = $('#f_email').val();
var f_message = $('#f_message').val();
// an alert works here and the variables are passed correctly.
$.post("thepathto/contact_form.php",
{
f_name:f_name,
f_email:f_email,
f_message:f_message
},
function(data){
alert('data = ' + data); // this alert does not work
});
});