4

我想将用户填写的信息从 HTML 表单发送到我的电子邮件地址。据我了解,由于电子邮件工作方式的性质,这不能通过仅使用客户端编码来完成,并建议使用 PHP(结合 AJAX)来处理服务器端代码。我按照此处的指南进行操作,但我的电子邮件地址没有收到任何电子邮件。在将代码部署到客户的 Web 空间 (goDaddy) 之前,我正在我的机器上进行本地测试(使用 XAMPP)。我想指出我以前从未使用过 PHP。

Javascript:

var data = "This is my email";
$.ajax({
    type: "POST",
    url: "email.php",
    data: data,
    dataType: "text"
});

PHP(电子邮件.php):

<?php
$to = "myself@hotmail.com";
$subject = "This is my email";
$message = $_REQUEST;
$send = mail($to, $subject, $message);
if(!$send){    
    die();  
}
?>
4

5 回答 5

2

您应该替换$_REQUEST$_REQUEST["data"]或类似的东西,因为$_REQUEST它是一个数组。

于 2012-07-01T15:56:44.307 回答
2

默认情况下,XAMPP 本身没有电子邮件发送功能。您可以查看以下链接;

xampp中的php邮件设置

如何让 XAMPP 在本地使用 php 的 mail() 函数,这样我就可以在本地测试我的 mail() 脚本而无需上传到我的服务器?

于 2012-07-01T16:03:19.637 回答
1

页面一直在刷新。下面是我的代码:

HTML 5:

<form method="post" data-ajax="false">
<input type="text" name="email" placeholder="jack@example.com, jil@example.com">
<input type="submit" name="submit" value="Invite" class="submitBtn"> 
</form>

JS:

$('form').bind('submit',function(){
$.ajax({
type    : 'POST',
url     : 'data/invite.php',
data    : $(this).serialize(),
cache   : false,
dataType: 'text',
success : function (serverResponse) { alert('mail sent successfully.'); },
error   : function (jqXHR, textStatus, errorThrown) {alert('error sending mail');}
});
})

PHP:

<?php
$to         = $_POST['mail'];
$name       = 'Indusnet Technologies';
$subject    = 'Think Recycle';
$text       = 'Welcome to our site';

$message =' You received  a mail from '.$name;
$message .='Text of the message : '.$text;

if(mail($to, $subject,$message)){
    echo 'mail successful send';
}
else{
    echo 'there’s some errors to send the mail, verify your server options';
}
?>
于 2013-02-25T12:35:30.463 回答
0

您可能应该将 false 返回到表单。尝试这个:

$('form').submit(function(){
  $.ajax({
    type    : 'POST',
    url     : 'data/invite.php',
    data    : $(this).serialize(),
    cache   : false,
    dataType: 'text',
    success : function (serverResponse) { alert('mail sent successfully.'); },
    error   : function (jqXHR, textStatus, errorThrown) {alert('error sending mail');}
  });

return false;
})
于 2013-05-05T21:12:09.183 回答
0
var data = "This is my email";
$.ajax({
    type: "POST",
    url: "email.php",
    data: data,
    dataType: "text"
});

这段代码应该是这样的

var data = "This is my email";
$.ajax({
    type: "POST",
    url: "email.php",
    data: {"data": data},
    dataType: "text"
});

并通过 $_POST['data'] 或 $_REQUEST['data'] 获取代码

于 2012-12-28T08:05:13.647 回答