PHP表单发送空白邮件


PHP form sending blank mails

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

当我一年前开始使用我的邮件脚本时,我也收到了很多空白邮件,即使我对表单有一个有效的验证。我每天收到大约5-8封空白邮件,但我决定在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.");

非常感谢您的帮助!提前感谢!

我愿意打赌,您的脚本是这样设置的,任何时候任何人加载该页面,它会发出一封电子邮件。我将包含一个隐藏变量:

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

然后在sendmailprep .php页面的$_POST["formEmail"]中检查它,只有当该变量存在时才发送电子邮件。

我猜你可能会让搜索引擎机器人点击页面。