PHP邮件发送file.html

时间:2014-01-15 17:50:30

标签: php html

您好我正在装箱一个简单的PHP邮件appi。为此,我为Send To:input和Subject:输入创建了一个HTML表单。现在我想打开一个HTML文件并发送到接待处。当我填写index.php上的Send TO和Subject输入字段并提交它时没有错误,只是html文件显示在下一页但没有MAILS通过。

我正在使用localhost。

HTML文件:

    <html>
<head></head>

<body>

<h2>Mail</h2>

<form name="form1" method="post" action="mail.php">
    Send To: <input type="text" id="recipient" name="recipient">
    <br>
    Subject: <input type="text" id="subject" name="subject">
    <br>
    <input type="submit" value="Send">

</form>

</body>

</html>

PHP文件:

    <?php

$to = $_POST['recipient'];
$subject = $_POST['subject'];
$message = readfile("welcome.html","r") or exit ("Unable to open file");
fclose($message);


mail($to, $subject, $message);

?>

有人可以提出解决方案或指导我阅读有关此主题的阅读来源。

3 个答案:

答案 0 :(得分:0)

如果您使用localhost,您的互联网盒可能会阻止端口25,它对应于smtp邮件端口。

您应该配置您的盒子以便打开它,或者在不受此配置问题影响的服务器上进行测试。

答案 1 :(得分:0)

您缺少Content-Type标头以将消息设置为HTML。另外,如果您使用的是本地计算机,则需要设置SMTP服务器以发送电子邮件。

$to = $_POST['recipient'];
$subject = $_POST['subject'];
$message = readfile("welcome.html","r") or exit ("Unable to open file");

$headers = "Content-type: text/html\r\n"; 

fclose($message);


mail($to, $subject, $message, $headers);

答案 2 :(得分:0)

其他人已帮助您弄清楚您的发送问题,但正如我在评论中指出的那样,您使用了错误的文件读取功能。您应该使用file_get_contents,因为它实际上返回包含文件内容的字符串,而您当前的解决方案返回一个表示读取的字节数的整数。请尝试访问http://us3.php.net/manual/en/function.file-get-contents.php以获取更多信息。