0

我已经在 SO 上搜索了一段时间,但似乎找不到问题的答案。我有一个 PHP 邮件脚本,可以成功地将电子邮件发送到正确的邮件地址,没有问题。我使用 Gmail 作为我的邮件客户端,它运行良好,但是当我在我的主机站点(mamutmail at active24)检查网络邮件时,我注意到很多电子邮件不会被重定向到 Gmail。

一年前我开始使用我的邮件脚本时,我也收到了很多空白邮件,即使我对表单进行了有效的验证。我每天收到大约 5 到 8 封空白邮件,但在我搜索了很多 Google 并认为这是“随机主机问题”之后,我决定在 Gmail 中过滤掉它们(我知道,这很愚蠢)。

所以,总结一下:

--> 从网站上的表单发送的邮件正在发送到主机 webmail,但有些没有导入到我的 Gmail

--> 我每天都收到很多空白邮件,即使我认为我有验证

这是我的表单代码:

<form id="mailForm" method="post" action="sendMailPre.php">
            Ditt namn <span style="color: red;">*</span><br/>
            <input type="text" name="name" class="required" /><br/><br/>

            Din mailadress <span style="color: red;">*</span><br/>
            <input type="text" name="mail" class="required email" /><br/><br/>

            Ditt telefonnummer<br/>
            <input type="text" name="tele" /><br/><br/>

            Din stad<br/>
            <input type="text" name="city" /><br/><br/>

            Ditt meddelande <span style="color: red;">*</span><br/>
            <textarea type="text" name="message" rows="8" class="required"></textarea><br/><br/>

            <input type="submit" class="submit" value="Skicka meddelande" /><br/><br/>
            </form>

这是 PHP 中的邮件脚本:

$ToEmail = 'test@mail.com'; 
$EmailSubject = $_POST["name"] . ' - Mail från hemsidan';
$mailheader = 'From: ' . $_POST["name"] . '' . "\n" .
'Reply-To: ' . $_POST["mail"] . '' . "\n" .
"X-Mailer: PHP/" . phpversion()."\n";


$mailheader .= "MIME-Version: 1.0\n";
$mailheader .= "Content-Type: text/html; UTF-8\n";

$message = '<html><head>';
$message .= '<style>';
$message .= 'body{line-height: 60%; padding: 35px; margin: 0;}';
$message .= '</style></head>';
$message .= '<body>';
$message .= '<span style="font-family: Trebuchet MS; font-size: 16px; font-weight: bold; color: #4c7eb0; font-weight: normal;">NAMN</span><br/>';
$message .= str_replace("\n", "<br />", ($_POST["name"])); 
$message .= '<br/><br/>';
$message .= '<span style="font-family: Trebuchet MS; font-size: 16px; font-weight: bold; color: #4c7eb0; font-weight: normal;">MAIL</span><br/>';
$message .= str_replace("\n", "<br />", ($_POST["mail"])); 
$message .= '<br/><br/>';
$message .= '<span style="font-family: Trebuchet MS; font-size: 16px; font-weight: bold; color: #4c7eb0; font-weight: normal;">TELEFONNUMMER</span><br/>';
$message .= str_replace("\n", "<br />", ($_POST["tele"])); 
$message .= '<br/><br/>';       $message .= '<span style="font-family: Trebuchet MS; font-size: 16px; font-weight: bold; color: #4c7eb0; font-weight: normal;">STAD</span><br/>';   $message .= str_replace("\n", "<br />", ($_POST["city"]));  $message .= '<br/><br/>';
$message .= '<span style="font-family: Trebuchet MS; font-size: 16px; font-weight: bold; color: #4c7eb0; font-weight: normal;">MEDDELANDE</span><br/>';
$message .= str_replace("\n", "<br />", ($_POST["message"])); 
$message .= '</span>';
$message .= '</body></html>';
mail($ToEmail, $EmailSubject, $message, $mailheader) or die ("Meddelandet kunde inte skickas.");

真的很感激一些帮助!先感谢您!

4

1 回答 1

2

我敢打赌,您的脚本是这样设置的,任何时候任何人加载该页面都会触发一封电子邮件。我会包括一个隐藏变量:

<input type="hidden" name="formEmail" value="1"/>

然后在 sendMailPre.php 页面上的 $_POST["formEmail"] 中检查它,并且仅在该变量存在时才发送电子邮件。

我最好的猜测是您可能正在让搜索引擎机器人访问该页面。

于 2013-04-16T18:05:15.310 回答