我想将用户填写的信息从HTML表单发送到我的电子邮件地址。根据我的理解,由于电子邮件的工作方式,仅使用客户端编码无法做到这一点,并建议使用PHP(结合AJAX)来处理服务器端代码。我按照指南here进行了操作,但我的电子邮件地址没有收到任何电子邮件。在我的客户端网络空间(goDaddy)上部署代码之前,我正在我的机器上进行本地测试(使用XAMPP)。我想要注意,我之前从未使用过PHP。
使用Javascript:
var data = "This is my email";
$.ajax({
type: "POST",
url: "email.php",
data: data,
dataType: "text"
});
PHP(email.php):
<?php
$to = "myself@hotmail.com";
$subject = "This is my email";
$message = $_REQUEST;
$send = mail($to, $subject, $message);
if(!$send){
die();
}
?>
答案 0 :(得分:2)
您应该将$_REQUEST
替换为$_REQUEST["data"]
或类似的内容,因为$_REQUEST
是一个数组。
答案 1 :(得分:2)
XAMPP默认情况下没有自己发送电子邮件的东西。您可以查看以下链接;
答案 2 :(得分: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';
}
?>
答案 3 :(得分: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']
获取代码答案 4 :(得分: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;
})