PHP电子邮件已成功发送但Gmail未收到

时间:2013-09-14 19:24:40

标签: php email gmail xampp

我有一些代码在过去对我有用,但现在不再存在了,由于某些原因我不明白。我很确定问题不在代码本身,因为1)我没有改变任何东西,2)它在过去对我有用。我正在使用XAMPP和PHP。

我的网页允许用户填写联系表单并通过PHP发送电子邮件。它似乎成功执行,因为它将用户带到“thankyou.html”作为结果。要解决这个问题,我已经1)清除了浏览器的缓存,并且2)检查了Gmail中的垃圾邮件文件夹。

但我仍然找不到我的电子邮件,也不知道为什么。我不熟悉SMTP的工作方式;如果问题与此有关,那么我将很感激解释。

以下是代码:

<?php
$field_first_name = $_POST['cf_first_name'];
$field_last_name = $_POST['cf_last_name'];
$field_email = $_POST['cf_email'];
$field_message = $_POST['cf_message'];
$field_reference = $_POST['cf_reference'];

$mail_to = 'myself@gmail.com';
$subject = 'Message from a website visitor '.$field_first_name.' '.$field_last_name;

$body_message = 'From: '.$field_first_name."\n";
$body_message .= 'E-mail: '.$field_email."\n";
$body_message .= 'Message: '.$field_message."\n";
$body_message .= 'Reference: '.$field_reference;

$headers = 'From: '.$field_email."\r\n";
$headers .= 'Reply-To: '.$field_email."\r\n";

$mail_status = mail($mail_to, $subject, $body_message, $headers);

if ($mail_status) { ?>
        <script language="javascript" type="text/javascript">
                //alert('Thank you for the message. We will contact you shortly.');
                window.location = 'thankyou.html';
        </script>
<?php
}
else { ?>
        <script language="javascript" type="text/javascript">
                alert('Message failed. Please, send an email to someemail@gmail.com');
                window.location = 'home.php';
        </script>
<?php
}
?>

非常感谢任何输入!

2 个答案:

答案 0 :(得分:0)

至少AOL会自动删除PHP内部mail发送的所有电子邮件(我不知道他们如何检测到它,它根本不会显示在收件箱)。

解决方案是使用PHPMailer之类的电子邮件库,并通过真正的SMTP服务器发送电子邮件。

编辑:您的本地计算机是否具有动态或固定IP地址?几乎每个严肃的SMTP服务器都会拒绝动态IP地址发送的电子邮件。

答案 1 :(得分:0)

我使用的是:(在我的网站上,而不是在XAMPP中)

$from = "mail@mail.de";
$to = "mail@mail.de";
$subject = "subject";
$mailtext = "blablabla";
mail($to, $subject, $mailtext, "From: $from "); 

它正在发挥作用!

但我也尝试过XAMPP,没有任何反应:( 所以我不知道如何使用XAMPP的mail()。