PHP PEAR邮件通过AJAX无法正常工作 - 邮件脚本在直接调用时工作正常

时间:2013-11-26 14:48:58

标签: php jquery ajax smtp pear

我有一个通过AJAX调用PHP PEAR邮件脚本的Web表单。当我直接调用我的脚本时(通过在浏览器中键入脚本的完整路径),它可以工作。当我从Web表单调用脚本时,它首次发送,但不是后续发送。

我正在使用smtp。托管有SSL。

网络托管公司确认该脚本正常运行,PEAR包的路径正常工作等。

我尝试了很多东西,并围绕这个主题阅读了大量的问题和答案。

似乎从浏览器直接运行脚本会执行jquery / ajax设置没有执行的操作。肠道感觉(我知道很糟糕......)说在使用表单时需要重新初始化某些内容。真的吗?

另一个线索是Ajax Post调用成功函数不会生成警报(见下文)。我将回声写入服务器上的文本文件 - 这也是间歇性的。

任何帮助或想法都会受到极大的欢迎。

这是邮件脚本:

<?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";

?>

这是电话:

$('#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               
    });

});

感谢。

0 个答案:

没有答案