从ubuntu、php、ajax网站发送邮件
我有一个网站,上面有一个表格,你可以把信息发送到我的电子邮件地址。但它还不起作用。我真的不确定要做什么。以下是我迄今为止所做的工作: PHP:从ubuntu、php、ajax网站发送邮件,php,jquery,ajax,email,Php,Jquery,Ajax,Email,我有一个网站,上面有一个表格,你可以把信息发送到我的电子邮件地址。但它还不起作用。我真的不确定要做什么。以下是我迄今为止所做的工作: PHP: <?php if (isset($_POST['from']) && isset($_POST['header']) && isset($_POST['message'])) { $to = "example@awesomemail.com"; $subject = $_POST['from']; $b
<?php
if (isset($_POST['from']) && isset($_POST['header']) && isset($_POST['message'])) {
$to = "example@awesomemail.com";
$subject = $_POST['from'];
$body = $_POST['message'];
$headers = $_POST['header'];
if (mail($to, $subject, $body, $headers)) {
echo("<p>Email successfully sent!</p>");
echo json_encode('success');
} else {
echo("<p>Email delivery failed…</p>");
echo json_encode('failed');
}
}
?>
我的代码是否有问题,或者我是否遗漏了什么?
电子邮件应该发送到gmail帐户。如果发送标题有问题,您可以这样做: 首先将所有值合并为一个变量
var string = 'mail='+from+'/'+header+'/'+message;
$.ajax({
type : "POST",
url : "sendmail.php",
data: string,
dataType: "json",
success: function(msg){
alert(msg);
}
});
sendmail.php
<?php
if (isset($_POST['mail']) && !empty($_POST['mail'])) {
$msg = explode('/','$_POST['mail']');
$to = "example@awesomemail.com";
$subject = $msg[0];
$headers = $msg[1];
$body = $msg[2];
if (mail($to, $subject, $body, $headers)) {
echo("<p>Email successfully sent!</p>");
echo json_encode('success');
} else {
echo("<p>Email delivery failed…</p>");
echo json_encode('failed');
}
}
?>
这个答案只是另一种选择,更多的是基于你的评论。
(您可以在提交表单之前执行javascript验证,也可以在输入jquery/ajax之前执行带条件的验证)尝试这样做,尝试将完整的json响应从服务器端发送到客户端,以供解析 PHP:
<?php
if (isset($_POST['from']) && isset($_POST['message']))
{
$to = "example@awesomemail.com";
$subject = $_POST['from'];
$body = $_POST['message'];
$headers = urldecode($_POST['header']);
if (mail($to, $subject, $body, $headers))
echo json_encode('success');
else
echo json_encode('failed');
}
else
echo json_encode('failed');
?>
$.post('sendmail.php',{"from": from ,"header" :header, "message":message},function(response)
{
var response = $.parseJSON(response);
console.log(response);
});
没有足够的分数来评论问题。。。但我只是想确认你在系统上设置了邮件传输代理。如果不是,那可能就是罪魁祸首
如果这项工作还没有完成,您可以参考或着手进行。为什么您要使用json作为数据类型,但还要回显json和纯文本?在文章中传递标题似乎有些奇怪。这是php邮件的一个可选设置,请在没有标题声明的情况下尝试,然后查看是否收到纯文本电子邮件。如果我删除它,我会得到以下信息:注意:未定义索引:第4行中的C:…sendmail.php注意:未定义索引:第5行中的消息:…php注意:未定义索引:第6行中的标题:…sendmail.php电子邮件已成功发送!“valid”还有带有“msg”的警报消息从未出现,删除标题部分无效。控制台日志:成功,但我的收件箱中仍然没有新邮件:(签入垃圾邮件文件夹,尝试检查apache的
error.log
?我知道我需要安装邮件传输代理,我会带着结果返回这里是的,我想我可能需要这样的东西:)我将进行设置并返回此处,结果如下:WeSome!如果您需要发送电子邮件的服务,每天免费提供200封电子邮件,并提供有关如何使用以及快速设置的文档。感谢您的帮助一切正常:)结束使用本指南:
$.post('sendmail.php',{"from": from ,"header" :header, "message":message},function(response)
{
var response = $.parseJSON(response);
console.log(response);
});