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

时间:2015-02-25 10:48:45

标签: php ajax 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 :) 
?>

有人知道什么是错的吗?

EDIT.:Bww,这是我的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

2 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分:0)

您尝试使用安全服务器发送邮件。除了mail之外,您还需要使用Gmail发送电子邮件。

您可以使用开源(非常受欢迎)PHP mailer library来执行此操作。

这是一个关于GitHub的项目,它包含使用PHPMailer并使用Gmail发送的整个过程:https://github.com/abusalam/GMail-SMTP