我的联系表单和php mail()函数有问题。出于某种原因,它们适用于每个电子邮件地址(@gmail,@ yahoo,@ OUTlook甚至@facebook!),除了旧的可怕的hotmail。我只是好奇我的代码丢失了什么。我检查过邮件服务器,但邮箱地址显然没有问题。
电子邮件甚至没有发送到垃圾邮件/垃圾邮件文件夹(它没有到达hotmail)。我在网上看了一下,有人说更改标题以避免陷入垃圾邮件过滤器。有没有指向这个?
PHP代码
<?php
header('Content-Type: application/json charset=utf-8');
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
$from = 'companyname@mail.com';
$to = 'myemail@hotmail.com';
$subject = $name . ' has sent you a message';
$human = $_POST['antispam'];
$body = "From: $name\n E-Mail: $email\n Message:\n $message";
if (isset($_POST['name']) && $human == '4') {
if (mail ($to, $subject, $body, $from)) {
echo '{"status":"1"}';
} else {
echo '{"status":"0"}';
}
}
else
{
echo '{"status":"2"}';
}
?>
if语句只是检查所有表单是否有效并且是否正确输入了反垃圾邮件(2 + 2)。在这部分没什么可做的。我猜这个问题是在标题
中的某个地方答案 0 :(得分:0)
尝试使用这些更改:
<?php
header('Content-Type: application/json; charset=utf-8');
...
$from = 'companyname@mail.com';
$headers = 'From: '. $from. "\r\n";
...
if (mail ($to, $subject, $body, $headers)) {
...
?>
邮件功能的第四个参数应该是additional_headers,而不仅仅是来自地址。