PHP表单发送空白邮件

时间:2013-04-16 18:01:53

标签: php forms email

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

当我一年前开始使用我的邮件脚本时,我也收到了很多空白邮件,即使我在表单上有工作验证。我每天收到5-8封空白邮件,但我决定在谷歌搜索后将其过滤掉,并认为这是一个“随机主机问题”(我知道,这是愚蠢的)。

所以,总结一下:

- >从网站上的表单发送的邮件将被发送到主机网络邮件,但有些邮件不会导入我的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.");

非常感谢一些帮助!提前谢谢!

1 个答案:

答案 0 :(得分:2)

我愿意打赌你的脚本设置的方式是任何人加载该页面时都会触发电子邮件。我会包含一个隐藏变量:

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

然后在sendMailPre.php页面的$ _POST [“formEmail”]中检查它,如果那个变量在那里,只发送一封电子邮件。

我最好的猜测是你可能会让搜索引擎机器人点击页面。