[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Не доходят письма. Ф-я mail
Gesandte
Привет. Мужики, всю голову сломал.
Хостинг 1gb.ru/
В общем прикрутил на сайт ф-ю отправки сообщений. Писал ее еще года 2 назад. Работала все нормально, на gmail точно письма приходили. Сейчас фигня в том, что письма доходят только на одну единственну мою почту @bk.ru . Ни на gmail, yandex, mail письма не доходят. Ради интереса создал еще одну почту на майл @bk.ru и нет писем! А на мою почту доходят. Не вкуриваю что не так....


# Подключаем файлы
require_once $_SERVER['DOCUMENT_ROOT']."/mail/protection.class.php";

# Переносим данные в защищенные массивы
protection::getLock();
protection::postLock();

class mail {
private $message = array();
private $validationResult = array();

# Параметры по умолчанию
function __construct() {
# Получатель
$this->message['to'] = "адрес почты";

$this->message['headers'] = "Content-type: text/html; charset=utf-8 \r\n";
$this->message['headers'] .= "Content-Transfer-Encoding: base64 \r\n";
$this->message['headers'] .= "From: ".$this->message['from'];
}

# Заголовок письма
private function title() {
$this->message['subject'] = "Заявка с сайта";
}

# Проверка данных
private function valid() {
# Имя
$this->message['name'] = substr(protection::$_post['name'], 0, 40);
if (!preg_match('/[a-zA-Zа-яА-Я]{3,40}/', $this->message['name'])) {
$this->validationResult['name'] = false;
}

# Email
$this->message['from'] = substr(protection::$_post['email'], 0, 40);
if (!preg_match('/[-._a-z0-9]+@[a-z0-9]{2,10}+\.[a-z]{2,6}/i', $this->message['from'])) {
$this->validationResult['from'] = false;
}

# Телефон
$this->message['phone'] = substr(protection::$_post['phone'], 0, 12);
if (!preg_match('/[0-9]{6,12}/', $this->message['phone'])) {
$this->validationResult['phone'] = false;
}

# Сопроводительное письмо
$this->message['covering-letter'] = substr(protection::$_post['covering-letter'], 0, 1000);
}

# Отправка сообщения
public function send() {
# Проверяем введенные данные
$this->valid();

foreach ($this->validationResult as $key => $value) {
if (false == $value) {
echo "<span class='contact-form__send-status__false'>Не верно указано значение одного из полей, помеченных *.</span>";
exit();
}
}


# Заголовок
$this->title();

# Формируем текст письма
$this->message['mail'] = "
<html>
<head>
<title>"
.$this->message['subject']."</title>
<meta charset='utf-8' />
</head>
<body>
"
.$this->message['name']."<br />
"
.$this->message['from']."<br />
"
.$this->message['phone']."<br />
<br /> -----------<br />
"
.$this->message['covering-letter']."
</body>
</html>"
;

# Отправляем
if (mail($this->message['to'], '=?UTF-8?B?'.base64_encode($this->message['subject']).'?=', base64_encode($this->message['mail']), $this->message['headers'])) {
echo "<span class='contact-form__send-status__true'>Письмо успешно отправлено. Скоро с Вами свяжутся :)</span>";
} else {
echo "<span class='contact-form__send-status__false'>Случилось непредвиденное и письмо не удалось отправить :( Воспользуйтесь контактами, указанными в нижней части страницы.</span>";
}
}
}



if (isset(protection::$_post['send']) || strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
# Создаем экземпляр класса
$mail = new mail;

# Отправляем
$mail->send();
} else {
# Перенаправляем
header('Location: http://www.elektriki-kaluga.ru/');
}

Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.