1

我有一些过去对我有用的代码,但由于某种我不明白的原因,现在不再有用了。我很确定问题不在于代码本身,因为 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
}
?>

非常感谢任何输入!

4

2 回答 2

0

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

一种解决方案是使用电子邮件库PHPMailer,例如通过真正的 SMTP 服务器发送电子邮件。

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

于 2013-09-14T20:07:12.183 回答
0

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

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

它正在工作!

但我也用 XAMPP 尝试过,但什么也没发生 :( 所以我不知道如何将 mail() 与 XAMPP 一起使用。

于 2013-09-14T20:12:07.680 回答