2014-01-15 5 views
0

Здравствуйте, я создаю простой почтовый апплет PHP. Для этого я создал HTML-форму для ввода: input и Subject: input. теперь для сообщения я хочу открыть файл HTML и отправить его на прием. Когда я заполняю поле ввода «Отправить» и «Тема» на index.php и отправляю его, ошибок нет, просто отображается html-файл на следующей странице, но не пройдут никакие MAILS.PHP mail send file.html

Я работаю на 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

В какой момент процесса происходит сбой? Есть ли ошибка в коде? Есть ли ошибка с сервера SMTP? Если вы укажете это на тестовом SMTP-сервере, успешно ли оно получит сообщение, как ожидалось? Есть много вещей, которые могут помешать отображению электронной почты в вашем личном почтовом ящике, и очень немногие из них имеют какое-либо отношение к коду. – David

+0

Вы пытались отправить просто обычное письмо с одним символом или словом? Если это не работает, ваша проблема заключается не в отправке содержимого файла, а в том, что он отправляет что-либо. И если вы работаете над localhost, есть хороший шанс, это ваша проблема. –

+0

Вы также пробовали использовать простой текст, прежде чем пытаться читать файлы и т. Д., Когда это работает, вы можете прогрессировать? –

ответ

0

Если вы работаете на локальном хосте, ваш интернет-блок может блокировать порт 25, соответствующий порту почты smtp.

Вам необходимо настроить окно, чтобы открыть его, или проверить на сервере, который не страдает от этой проблемы с конфигурацией.

+0

Да, я на самом деле думаю, что проблема с локальным хостом, как и где я должен настраивать ini.php, чтобы разрешить почтовую почту – Tomazi

+0

, это не в каком-либо ini.php, это в вашей конфигурации интернет-коробки. Например, во Франции у меня есть «livebox», и когда я набираю «livebox» в своем веб-браузере, у меня есть доступ к его конфигурации. Это интернет-бокс, который блокирует ваши письма, это не проблема php. –

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); 
+0

ОК, это работает, но вместо html-контента я получаю целое число, а не контент, любую идею ho я могу исправить – Tomazi

0

Остальные помогли вам понять вашу проблему отправки, но, как я указал в своем комментарии, вы используете неправильную функцию чтения файла. Вместо этого вы должны использовать file_get_contents, так как это фактически возвращает строку, содержащую содержимое файла, тогда как ваше текущее решение возвращает целое число, представляющее количество прочитанных байтов. Попробуйте посетить http://us3.php.net/manual/en/function.file-get-contents.php для получения дополнительной информации.

Смежные вопросы