【发布时间】:2014-03-24 14:01:35
【问题描述】:
我在通过 php mail() 函数发送邮件时遇到问题。我不确定代码是否有问题,因为我已经读过一些托管服务器不允许发送邮件,但是当网站在本地主机上时我也尝试发送此邮件并且它仍然无法正常工作 - 单击“发送”我看到信息:“您的邮件已发送”,但是当我检查我的邮箱时,没有邮件(也在垃圾邮件中)。
对我来说,代码看起来不错,但也许我遗漏了一些东西。我正在考虑的第二个选项是我的本地主机也不允许发送邮件。
<form id="contact" action="mail.php" method="POST">
<div class="field">
<label class="fixed_width" for="name">Name:</label><input id="name" name="name" value="Name"/>
</div>
<div class="field">
<label class="fixed_width" for="surname">Surname:</label><input id="surname" name="surname" value="Surname"/>
</div>
<div class="field">
<label class="fixed_width" for="mail">E-mail:</label><input id="mail" name="mail" value="E-mail"/>
</div>
<div class="field" id="message">
<label class="fixed_width" id="message_width" for="mail">Message:</label>
<textarea id="message" name="message" />Type your message...</textarea>
</div>
<div>
<input class="width" type="submit" value="Send" />
</div>
</form>
<?php
srand((double)microtime()*1000000);
$marker = md5(uniqid(rand()));
$receiver = "address@gmail.com";
$title = "Mail";
$sender = $_POST['name'];
$sender .= $_POST['surname'];
$sender_mail = $_POST['mail'];
$message = $_POST['message'];
$headers = "From: $sender <$sender_mail>\n";
$headers .= "MIME-Version: 1.0\n";
$headers .= "Content-Type: multipart/mixed;\n";
$headers .= "\tboundary=\"___$marker==\"";
$content ="--___$marker==\n";
$content .="Content-Type: text/plain; charset=\"iso-8859-2\"\n";
$content .="Content-Transfer-Encoding: 8bit\n";
$content .="\n$message\n";
if (mail($receiver,$title,$content,$headers))
{
print "Your message is sent.";
} else {
print "Your message is not sent.
<br>Please go <a href=\"javascript:history.back();\">back</a> and send again.";
}
?>
我的 php conf 的图片:
【问题讨论】:
-
您是否打开了错误报告?您是否尝试过与 gmail 不同的电子邮件?您使用边界是否有原因(不是必需的)?您似乎没有“-f”参数,这有助于交付...
-
如果我是你,我会将输入的“值”属性更改为“占位符”。这将使您不必依赖 JS 来检查这些字段的值是否设置为默认值,如果是,则在它们获得焦点时清除它们并在模糊时将它们设置为空。鉴于您已经为这些字段指定了标签,因此设置值是多余的。此外,我会在您的 $_POST 变量周围放置 strip_tags() 或 filter_var() 调用。 (永远不要相信没有某种形式的卫生的用户输入。)
-
@cale_b OP 已指定这是在本地主机上。
-
我从来没有运气从本地主机安装发送电子邮件...
-
这是本地主机,我也尝试过除 gmail 以外的其他电子邮件。