您好我正在装箱一个简单的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);
?>
有人可以提出解决方案或指导我阅读有关此主题的阅读来源。
答案 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以获取更多信息。