Bluehost下的邮件发送问题

2011-03-04 15:00:24 +08:00
 ikbear
这里有个表单: http://troyacupuncture.com/appointment.html
通过这个表单提交数据后,数据通过以下PHP代码发送给某个邮箱:

<?php
$to = 'xushuyun@yahoo.com';
$firstname = $_POST['firstname'];
$lastname = $_POST['lastname'];
$phone = $_POST['phone'];
$subject = "New message from $firstname $lastname";
$headers = $_POST['email'];
$headers = 'From: ' . $headers . "\r\n";
$msg = "First name: $firstname\r\n\r\nLast name: $lastname\r\n\r\nPhone number: $phone";
$msg .= "\r\n\r\n"."Message:\r\n".$_POST['msg'];

function mail_utf8($to, $subject = '(No subject)', $message = '', $header = '') {
$header_ = 'MIME-Version: 1.0' . "\r\n" . 'Content-type: text/plain; charset=UTF-8' . "\r\n";
mail($to, '=?UTF-8?B?'.base64_encode($subject).'?=', $message, $header_ . $header);
}

mail_utf8($to, $subject, $msg, $headers);
?>

代码非常简单,没有检查表单字段是否为空。我很懒,总觉得够用就行。这些代码放到dreamhost的主机上,没啥问题。但是,如果放到bluehost的主机上,每天都会收到平均两封的以上字段为空的邮件。发送邮件的服务器是box712.bluehost.com,网站所在的共享服务器。

我找了bluehost的客服,想看看是不是他们的问题,他们说不是,是我的程序的问题。

同样的程序,放在其它主机上没问题,放在他们的主机上就会出问题,我不太相信是这段简短的程序的问题。有用过bluehost的人吗?有没有碰到类似的问题?我这是第一次使用bluehost。
5100 次点击
所在节点    PHP
3 条回复
ayanamist
2011-03-04 15:47:53 +08:00
你都不做验证的吗?那我空POST呢?
ikbear
2011-03-04 15:51:19 +08:00
@ayanamist 这确实是个问题。我刚加入了验证:
if(empty($to) || empty($subject) || empty($msg) || empty($headers) )
die("Unable to send your mail!");
else
mail_utf8($to, $subject, $msg, $headers);
但是这样还是解决不了,能给个建议吗?
ikbear
2011-03-04 15:59:56 +08:00
@ayanamist 我知道了,晕,我这问的是个非常白痴的问题。上面的验证代码也是非常白痴的。汗。。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/9259

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX