|
|
|
| Данный скрипт нежелает отсылать почту на адреса почты такого вида xxx@xxx-xxx.ru
Может дело в тире xxx-xxx?
На адреса вида xxx@xxx.ru отсылает нормально. В чем проблемма
<?php
include("./mail_class.php");
$mail = new Mail();
$mail -> to = "xxx@xxx-xxx.ru"; //адрес вымышленный
//сюда подставляется реальный адрес
$mail -> subject = "письмо с сайта";
// Здесь получаем текст письма из формы, предварительно обработав на безопасность
$_POST['FIO'] = htmlspecialchars(stripslashes($_POST['FIO']));
$_POST['eMail'] = htmlspecialchars(stripslashes($_POST['eMail']));
$_POST['msg'] = htmlspecialchars(stripslashes($_POST['msg']));
$msg = $_POST['FIO']."[br]".$_POST['eMail']."[hr]".$_POST['msg'];
$msg = str_replace("[br]","<br>",$msg);
$msg = str_replace("[hr]","<hr>",$msg);
$mail -> msg = $msg;
$mail -> rigorous_email_check = 0;
if($mail->send()){
echo("<div align=center><br><br><br><br><br><br><br>Письмо отправлено!");
}else{
echo("Ошибка при отправлении письма");
}
echo("<br>");
echo($mail -> msg);
echo("</div>");
?>
|
| |
|
|
|
|
|
|
|
для: TuX
(27.08.2005 в 19:15)
| | Класс mail_class.php чей и через что он оправляет почту через функцию mail(), почтовые ретрансляторы и где происходит тестирование системы на локальной машине или на сервере. Если на локальной машине, то установлен ли транспортный почтовый агент. | |
|
|
|
|
|
|
|
для: TuX
(27.08.2005 в 19:15)
| | Может посмотреть в пхп логах, какую ошибку скрипт выдает? Или пхп выводит в браузер сообщение об ошибке? | |
|
|
|
|
|
|
|
для: gotbar
(27.08.2005 в 21:28)
| | Класс взят от куда-то с вашего форума. Вот код класса
<?php
class Mail
{
// создаем переменные, в которых хранится содержимое заголовков
var $to = '';
var $from = '';
var $reply_to = '';
var $cc = '';
var $bcc = '';
var $subject = '';
var $msg = '';
var $validate_email = true;
// проверяет допустимость почтовых адресов
var $rigorous_email_check = true;
// проверяет допустимость доменных имен по записям DNS
var $allow_empty_subject = false;
// допустимость пустого поля subject
var $allow_empty_msg = false;
// допустимость пустого поля msg
var $headers = array();
/* массив $headers содержит все поля заголовка, кроме to и subject*/
function check_fields()
/* метод, проверяющий, переданы ли все значения заголовков
и проверку допустимости почтовых адресов */
{
if(empty($this -> to))
{
return false;
}
if(!$this -> allow_empty_subject && empty($this -> subject))
{
return false;
}
if(!$this -> allow_empty_msg && empty($this -> msg))
{
return false;
}
/* если есть дополнительные заголовки, помещаем их в массив $headers*/
if(!empty($this -> from))
{
$this->headers[] = "From: $this -> from";
}
if(!empty($this -> reply_to))
{
$this -> headers[] = "Reply_to: $this -> reply_to";
}
// проверяем допустимость почтового адреса
if ($this -> validate_email)
{
if (!preg_match("/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i", $this -> to))
{
return false;
}
return true;
}
}
function send()
/* метод отправки сообщения */
{
if(!$this -> check_fields()) return true;
if (mail($this -> to, trim($this -> subject),
trim($this -> msg)))
{
return true;
}else{
return false;
}
}
}
?>
|
Все файлы лежат в папке mail:
1. файл с кодом формы, которая инклудится потом в страницу, находящуюся уровнем выше;
2. файл с кодом приведенным в первом посе;
3. класс | |
|
|
|
|
|
|
|
для: TuX
(27.08.2005 в 21:52)
| | У вас в этой строчке стоит запрет на все символы, которые НЕ разрешены в вашем регулярном выражении:
if ($this -> validate_email)
{
if (!preg_match("/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i", $this -> to))
Попробуйте переписать так
Apropo: Как делать скрипты в цвете тут на форуме? Кто-нить подскажет?
if ($this -> validate_email)
{
if (!preg_match("/[0-9a-z_]+@[0-9a-z-_^\.]+\.[a-z]{2,3}/i", $this -> to))
|
| |
|
|
|
|
|
|
|
для: gotbar
(27.08.2005 в 22:27)
| | СПАСИБО! | |
|
|
|