|
|
|
| Не могу разобраться с функцией mail
подскажите пожалуйста, что я недосмотрел, где ошибка?
if(empty($_POST['mail_to'])) exit("Ви забули вказати адресу");
if(empty($_POST['imia'])) exit("Ви забули написати своє ім'я");
if(empty($_POST['message'])) exit("Ви забули написати повідомлення");
$_POST['mail_to']=htmlspecialchars(stripslashes($_POST['mail_to']));
$_POST['imia']=htmlspecialchars(stripslashes($_POST['imia']));
$_POST['message']=htmlspecialchars(stripslashes($_POST['message']));
$imia=$_POST['imia'];
$message=$_POST['message'];
$mail_to=$_POST['mail_to'];
mail($mail_to, $imia, $message);
соответственно есть форма, куда посетитель заносит данные, а письмо не отправляется | |
|
|
|
|
|
|
|
для: Vasilij
(08.08.2007 в 17:47)
| | Вначале скрипта напиши
<?php
error_reporting(E_ALL);
?>
|
И сообщи какие ошибки пишутся
http://www.php.net/manual/ru/ref.mail.php | |
|
|
|
|
|
|
|
для: mihdan
(08.08.2007 в 17:49)
| | Даю весь код, скрипт почему-то не реагирует на if(!empty($_POST))
пришлось закоментировать временно 3 строки с проверкой, может надо по-другому написать?
никаких ошибок не дает (правда у меня FreeBSD a не Windows) в логах тоже ничего нету
<?php
error_reporting(E_ALL);
if(!empty($_POST))
{
#if(empty($_POST['mail_to'])) exit("Ви забули вказати адресу");
#if(empty($_POST['imia'])) exit("Ви забули написати своє ім'я");
#if(empty($_POST['message'])) exit("Ви забули написати повідомлення");
$_POST['mail_to']=htmlspecialchars(stripslashes($_POST['mail_to']));
$_POST['imia']=htmlspecialchars(stripslashes($_POST['imia']));
$_POST['message']=htmlspecialchars(stripslashes($_POST['message']));
$imia=$_POST['imia']; $message=$_POST['message'];
$mail_to=$_POST['mail_to'];
mail($mail_to, $imia, $message);
}
?> | |
|
|
|
|
|
|
|
для: Vasilij
(08.08.2007 в 17:47)
| | Держите готовую функу отправки мыла
<?php
sendmail($from,$to,$tema,$message);
function sendmail($from,$to,$subj,$text) {
$headers = "Reply-To: $from\r\n";
$headers .= "From: $from\r\n";
$headers .= "Return-Path: $from\r\n";
$headers .= "Content-Type: text/html; charset=windows-1251\r\n";
$headers .= "Content-Transfer-Encoding: 8bit\r\n";
$headers .= "MIME-Version: 1.0\r\n";
@mail($to,$subj,$text,$headers);
}
?>
|
| |
|
|
|
|
|
|
|
для: Vasilij
(08.08.2007 в 17:47)
| | Вполне возможно(если у вас хостинг бесплатный) функция просто отключена. Гляньте в phpinfo() раздел disabled function | |
|
|
|
|
|
|
|
для: mihdan
(08.08.2007 в 17:56)
| | хостинг не бесплатный а "свой" то есть сервер достался мне в наследство и приходится разбираться
если не секрет, то где вкл. отправка писем с сайта (функция mail)? | |
|
|
|
|
|
|
|
для: Vasilij
(08.08.2007 в 18:10)
| | Настройте php.ini для работы mail(); там в самом файле комменты - по-моему понятные | |
|
|
|
|
|
|
|
для: Vasilij
(08.08.2007 в 18:10)
| |
<?php
echo '<pre>';
print_r($_POST);
?>
|
Что кажет??? | |
|
|
|
|
|
|
|
для: mihdan
(08.08.2007 в 18:14)
| | Результат
Array
(
[mail_to] => name@meta.ua
[imia] => test
[message] => proba
) | |
|
|
|
|
|
|
|
для: Vasilij
(08.08.2007 в 18:20)
| | в php.ini нашел следующее:
[mail function]
; For Win32 only.
SMTP = localhost
smtp_port = 25
; For Win32 only.
;sendmail_from = me@example.com
; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
;sendmail_path =
; Force the addition of the specified parameters to be passed as extra parameters
; to the sendmail binary. These parameters will always replace the value of
; the 5th parameter to mail(), even in safe mode.
;mail.force_extra_parameters =
какие 5 параметров написать? у меня сервер работает на FreeBSD | |
|
|
|
|
|
|
|
для: Vasilij
(08.08.2007 в 18:33)
| | пятым параметром может быть передана строка с дополнительными аргументами к программе sendmail . | |
|
|
|
|
|
|
|
для: Trianon
(08.08.2007 в 19:26)
| | Просьба к тем, у кого сервер работает на FreeBSD:
покажите пример кода из php.ini, где разрешается функция mail
у меня в логах ошибок не пишет, но и письмо с помощью функции mail не отправляет
Может надо что-то настроить в Apache? | |
|
|
|
|
|
|
|
для: Vasilij
(09.08.2007 в 10:37)
| | Таблица 1. Mail configuration options
Name Default Changeable Changelog
SMTP "localhost"
smtp_port "25"
sendmail_from mihdan@yandex.ru
sendmail_path путь к sendmail
У меня вот так настроено и работает ;) mail() в php.ini не отключена (disabled_function = mail) | |
|
|
|
|
|
|
|
для: mihdan
(09.08.2007 в 10:48)
| | решил проблему, теперь отправляю письмо с помощью сокета, это оказалась быстрей чем настроить сервер
спасибо всем кто давал советы, общими усилиями я вышел на путь истинный:) | |
|
|
|