繁体   English   中英

PHP邮件功能不发送电子邮件

[英]PHP mail function not sending email

我正在尝试使用PHP邮件功能和AJAX发送基本电子邮件。 没有错误,但没有发送电子邮件。 这是我的AJAX函数:

<script language="javascript">
function sendMail(email){
var xmlhttp = new XMLHttpRequest();
var url = "/mail.php";
xmlhttp.onreadystatechange = function() {
    if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
        alert("entrei");
        document.getElementById("email").value = xmlhttp.responseText;
    }
}
xmlhttp.open("POST", url+"?email=" + email, true);
xmlhttp.send();
}
</script>

这是我的PHP代码:

    <?php
$Name = "Da Duder"; //senders name 
$email = "adamsilva01@gmail.com"; //senders e-mail adress 
$recipient = "adamsilva01@gmail.com"; //recipient 
$mail_body = "The text for the mail..."; //mail body 
$subject = "Subject for reviever"; //subject 
$header = "From: ". $Name . " <" . $email . ">\r\n"; //optional headerfields 
mail($recipient, $subject, $mail_body, $header); //mail command :) 
?>

有人知道怎么了吗?

编辑:顺便说一句,这是我的php.ini邮件配置,我已经在XAMPP中全部设置好了:

; XAMPP: Comment out this if you want to work with an SMTP Server like Mercury
SMTP = localhost
smtp_port = 25

; For Win32 only.
; http://php.net/sendmail-from
;sendmail_from = postmaster@localhost

EDIT2 .:我更改了我的PHP代码,现在出现以下错误:

Warning: mail(): SMTP server response: 530 5.7.0 Must issue a STARTTLS command first. ev7sm64500334wjb.47 - gsmtp in C:\xampp\htdocs\path\public_html\mailtest.php on line 10

因此,如果我们假设您可以在本地运行该PHP脚本,并且返回failed ...

您可以访问服务器本身(根)吗? 您很可能没有在本地安装邮件模块。 如果服务器基于Debian(例如Ubuntu),请运行apt-get install mailutils然后重试。

如果运行该函数未返回失败,它将返回什么?

您正在尝试使用安全服务器进行发送。 使用Gmail发送电子邮件不仅需要mail ,还需要其他功能。

您可以使用开放源代码(并且非常受欢迎)的PHP邮件程序库来执行此操作。

这是GitHub上的一个项目,具有使用PHPMailer和使用Gmail发送的整个过程: https : //github.com/abusalam/GMail-SMTP

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM