|
|
|
| Добрый день!
Не работает отправка писем, подскажите где напортачил?
include("send_mail.php");
$mail = new Mail();
$mail -> to = $email; //сюда подставляется реальный адрес
$mail -> subject = "test";
$mail -> msg = "testing...";
$mail -> msg = "testing...";
$mail -> rigorous_email_check = 0;
if($mail->send()){
echo("Success");
}else{
echo("error");
}
echo("<br>");
echo($mail -> msg);
|
<?php
session_start();
$email=$_SESSION['userMail'];
class Mail
{
// создаем переменные, в которых хранится содержимое заголовков
var $to = '$email';
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, htmlspecialchars( stripslashes(trim($this -> subject))),
htmlspecialchars(stripslashes(trim($this -> msg)))))
{
return true;
}else{
return false;
}
}
}
?>
|
| |
|
|
|
|
|
|
|
для: nameivan
(23.03.2009 в 09:00)
| | Файл с классом отправки откуда брали? | |
|
|
|
|
|
|
|
для: Trianon
(23.03.2009 в 09:07)
| | с софттайма и брал
вот этого не было
session_start();
$email=$_SESSION['userMail'];
я уже добавил | |
|
|
|
|
|
|
|
для: nameIvan
(23.03.2009 в 13:03)
| | >с софттайма и брал
тогда ждите cheops'a... может он посоветует чего... | |
|
|
|
|
|
|
|
для: nameivan
(23.03.2009 в 09:00)
| | какая хоть ошибка-то возникает? тогда легче будет рассуждать.
у вас функция mail работает? может ваш сервер не поддерживает отправку писем. Или вы с localhost у себя на компе пытаетесь запустить? (тогда точно не сработает)
попробуйте такой код:
<?php
mail ( 'ваша_почта@почтовый_сервер.ru', 'странная тема письма', 'тело письма' );
?>
|
если и это не сработает, тогда вопрос решается сам собой. Ваш компьютер не поддерживает отправку почты =) | |
|
|
|
|
|
|
|
для: Dobrynin
(23.03.2009 в 14:01)
| | там класс дохлый | |
|
|
|
|
|
|
|
для: Dobrynin
(23.03.2009 в 14:01)
| | в том то и дело что нет никаких ошибок. выдает сообщение что все ОК и письмо отправлено, но при этом письма в tmp нет | |
|
|
|
|
|
|
|
для: nameIvan
(23.03.2009 в 14:19)
| | проверил класс, всё замечательно работает, только есть одна маленькая недоработка:
var $to = '$email';
напиши что-нибудь типа:
var $to = 'mail@mail.ru'; | |
|
|
|
|
|
|
|
для: nameIvan
(23.03.2009 в 14:19)
| | замечу, что строки var $to = '$email'; в том варианте что висит в примерах скриптов портала - нет. | |
|
|
|
|
|
|
|
для: Trianon
(23.03.2009 в 14:39)
| | верно, там написано так
var $to = '';
я же попытался передать в эту переменную адрес который ввел пользователь | |
|
|
|
|
|
|
|
для: nameIvan
(23.03.2009 в 14:55)
| | теперь всё работает? | |
|
|
|
|
|
|
|
для: nameIvan
(23.03.2009 в 14:55)
| | вообще-то там в примере указано, как задавать адрес назначения. Делайте как в примере, если уж взялись использовать чужой класс.
Другое дело, что скрипт рушится, при попытке задать from или reply_to, но Вы же их не применяете... | |
|
|
|
|
|
|
|
для: Trianon
(23.03.2009 в 14:59)
| | нет не работает
проблема здесь $mail -> to = "$email"; переменная $email хранит адрес который ввел пользователь, и если здесь вписать конктерный алрес то все ОК, а если передавать через переменную то не работат | |
|
|
|
|
|
|
|
для: nameIvan
(23.03.2009 в 15:01)
| | значит в переменной $email нет адреса. | |
|
|
|
|
|
|
|
для: Trianon
(23.03.2009 в 15:10)
| | странно
если выводить $email до
include("send_mail.php");
$mail = new Mail();
$mail -> to = $email; //сюда подставляется реальный адрес
$mail -> subject = "test";
$mail -> msg = "testing...";
$mail -> msg = "testing...";
$mail -> rigorous_email_check = 0;
то адрес есть, а если после то ничего не выводит | |
|
|
|
|
|
|
|
для: nameIvan
(23.03.2009 в 15:13)
| | показывайте фрагмент обращения к классу.
и лучше бы Вы сделали echo( $mail -> to ); | |
|
|
|
|
|
|
|
для: Trianon
(23.03.2009 в 15:14)
| |
<?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, htmlspecialchars( stripslashes(trim($this -> subject))),
htmlspecialchars(stripslashes(trim($this -> msg)))))
{
return true;
}else{
return false;
}
}
}
?>
|
include("send_mail.php");
$mail = new Mail();
$mail -> to = $email; //сюда подставляется реальный адрес
$mail -> subject = "test";
$mail -> msg = "testing...";
$mail -> msg = "testing...";
$mail -> rigorous_email_check = 0;
if($mail->send()){
echo $email;
echo("<br>Success");
}else{
echo("error");
}
echo("<br>");
echo($mail -> msg);
|
| |
|
|
|
|
|
|
|
для: nameIvan
(23.03.2009 в 15:01)
| |
РНР код не обрабатывается в одинарных кавычках - ставьте двойные.
В данном случае лучше уж совсем без них. | |
|
|
|