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

编辑2.:我更改了我的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。。。

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

如果运行函数没有返回失败,它会返回什么?

您正试图使用安全服务器进行发送。使用Gmail发送电子邮件需要的不仅仅是mail

您可以使用开放源代码(也是非常流行的)PHP邮件库来实现这一点。

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