Страница 1 из 3

Функция mail();

Добавлено: Чт янв 05, 2017 3:40 pm
navka
Здравствуйте! Подскажите пожалуйста, почему не работает данный код для отправки сообщений. Ошибок нет, но письмо все равно не поступает на почту. Буду благодарна!

Код: Выделить всё

<?php	
	$name = $_POST['name'];
    $email = $_POST['email'];
    $message = $_POST['message'];

    $to = "navka200@gmail.com"; 
    $subject = "Письмо от посетителя"; 

    $body = "Ві получили письмо от " . $name . " (" . $email . "):\n\n" . $message;

    $from = "From: admin@justatest.kl.com.ua "; 
    $headers = "From:" . $from . "\r\n";
    /* $headers .= "Reply-To: " . $email . "\r\n";
    $headers .= "X-Mailer: PHP/" . phpversion();    */ 
                
    if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
        if ($name != '' && $email != '' && $message != '') {                
            if (mail ($to, $subject, $body, $headers)) { 
                echo '<p style="color:#66A325;">Спасибо! Ваше письмо отправлено.</p>';
            } else { 
                echo '<p style="color:#F84B3C;">Что-то пошло не так... Попробуйте еще раз!</p>'; 
            } 

        } else {
            echo '<p style="color:#F84B3C;">Заполните все поля, пожалуйста!</p>';
        }
    } else {
        echo '<p style="color:#F84B3C;">Указан неверный email.</p>';
    }  

Функция mail();

Добавлено: Чт янв 05, 2017 7:12 pm
oa-cru
Добрый вечер!
Мы проверили Ваш код - всё отлично. Вот тут наши маленькие правки:

Код: Выделить всё

<?php  
   $name = $_POST['name'];
    $email = $_POST['email'];
    $message = $_POST['message'];
 
    $to = "navka200@gmail.com";
    $subject = "Письмо от посетителя";
 
    $body = "Вы получили письмо от " . $name . " (" . $email . "):\n\n" . $message;
 
        $headers = 'From: admin@justatest.kl.com.ua' . "\r\n";
               
    if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
        if ($name != '' && $email != '' && $message != '') {                
            if (mail ($to, $subject, $body, $headers)) {
                echo '<p style="color:#66A325;">Спасибо! Ваше письмо отправлено.</p>';
            } else {
                echo '<p style="color:#F84B3C;">Что-то пошло не так... Попробуйте еще раз!</p>';
            }
 
        } else {
            echo '<p style="color:#F84B3C;">Заполните все поля, пожалуйста!</p>';
        }
    } else {
        echo '<p style="color:#F84B3C;">Указан неверный email.</p>';
    }  

Функция mail();

Добавлено: Чт янв 05, 2017 7:18 pm
navka
Подскажите пожалуйста, почему в таком случае письма на мой адрес не поступают :(
И спасибо за ответ!

Функция mail();

Добавлено: Сб янв 07, 2017 8:05 am
vozduch
Здравствуйте,
они не поступают из-за неправильного значения заголовка From.
Lля бесплатных аккаунтов в рамках борьбы со спамом было введено дополнительное правило, касающееся отправки писем при помощи функции php mail():
1) в скрипте, отвечающем за отправку писем, должен обязательно быть заголовок From:
$headers = 'From: happyuser@zzz.com.ua' . "\r\n" .
где happyuser@happy.zzz.com.ua - это почтовый ящик, с которого отправляются письма.
Внимание: на этом ящике не может быть установлено перенаправление, поскольку ящик с перенаправлением функционирует только как посредник, то есть с него нельзя отправлять письма.
2) Адрес электронной почты, вписанный в этом заголовке, должен реально существовать и быть добавлен в панели управления в закладке "Почта".
Если хотя бы одно из этих условий не выполнено, то письма не будут отправляться. Вы можете перейти на платный аккаунт, чтобы не было нужды вписывать заголовок.
Эта мера позволяет нам заблокировать одну из возможностей рассылания спама и гарантирует отправку писем только с почтовых ящиков владельцев аккаунта.

Введите, пожалуйста, предложенные нами поправки в код, и проверьте, доходят ли письма.

Всегда рада помочь,
Мира,
Служба поддержки ZZZ

Функция mail();

Добавлено: Вс янв 08, 2017 11:50 am
navka
vozduch писал(а):Здравствуйте,
они не поступают из-за неправильного значения заголовка From.
Lля бесплатных аккаунтов в рамках борьбы со спамом было введено дополнительное правило, касающееся отправки писем при помощи функции php mail():
1) в скрипте, отвечающем за отправку писем, должен обязательно быть заголовок From:
$headers = 'From: happyuser@zzz.com.ua' . "\r\n" .
где happyuser@happy.zzz.com.ua - это почтовый ящик, с которого отправляются письма.
Внимание: на этом ящике не может быть установлено перенаправление, поскольку ящик с перенаправлением функционирует только как посредник, то есть с него нельзя отправлять письма.
2) Адрес электронной почты, вписанный в этом заголовке, должен реально существовать и быть добавлен в панели управления в закладке "Почта".
Если хотя бы одно из этих условий не выполнено, то письма не будут отправляться. Вы можете перейти на платный аккаунт, чтобы не было нужды вписывать заголовок.
Эта мера позволяет нам заблокировать одну из возможностей рассылания спама и гарантирует отправку писем только с почтовых ящиков владельцев аккаунта.

Введите, пожалуйста, предложенные нами поправки в код, и проверьте, доходят ли письма.

Всегда рада помочь,
Мира,
Служба поддержки ZZZ
Спасибо за Ваш отзыв! Часть кода с From:

Код: Выделить всё

$headers = 'From: admin@justatest.kl.com.ua' . "\r\n";
Скриншот с моего аккаунта. Данный почтовый ящик существует, перенаправление отключено.
Изображение

В чем еще может быть проблема?

Функция mail();

Добавлено: Вс янв 08, 2017 1:58 pm
oa-cru
Добрый день!
Мы создали специально для вас новый почтовый ящик в Gmail:
Логин: testzzzcontact
Пароль: testzzzcontact1

Мы изменили Ваш скрипт так, чтобы письма приходили на этот ящик. Посмотрите и попробуйте.

Функция mail();

Добавлено: Вс янв 15, 2017 9:35 pm
wseer
у меня таже проблема, имеется бесплатный хостинг, но письма не отправляются, имеется файл PHP с формой кода отправки сообщения самая простая для тестирования. Что не так?
<?
$to = "infoworldcom@mail.ru";
mail($to,"$sub",$mes);
?>

Функция mail();

Добавлено: Вт янв 17, 2017 4:54 pm
smersh
Здравствуйте!
Ознакомьтесь, пожалуйста, с этой темой на нашем форуме viewtopic.php?f=10&p=3917#p3831.
wseer писал(а):у меня таже проблема, имеется бесплатный хостинг, но письма не отправляются, имеется файл PHP с формой кода отправки сообщения самая простая для тестирования. Что не так?
<?
$to = "infoworldcom@mail.ru";
mail($to,"$sub",$mes);
?>

Функция mail();

Добавлено: Вт фев 06, 2018 9:15 am
metall-nn
добрый день , подскажите почему ошибка 404???

Код: Выделить всё

<?php
if (!empty($_POST['name']) AND !empty($_POST['email']) AND !empty($_POST['message'])){

	$headers = 'From: metall-nn@metall-nn.zzz.com.ua' . "\r\n";
			 
	$theme= 'Новое сообщение';

	$letter='Данные сообщения:\r\n';
	$letter.='Имя: '.$_POST['name'].'\r\n';
	$letter.='Email: '.$_POST['email'].'\r\n';
	$letter.='Телефон: '.$_POST['phone'].'\r\n';
	$letter.='Сообщение: '.$_POST['message'].'\r\n';
	
	if (mail('kankankan333@mail.ru', $theme, $letter, $headers)){
	  header('Location:/php/thenkyou.php');
	} else{
	  header('Location:/php');
	}
} else{
	header('Location:/');
}

Функция mail();

Добавлено: Вт фев 06, 2018 9:50 am
skyweb
Специальные символы \r\n надо заворачивать в двойные кавычки " а не в апострофы, иначе они не трактуются так, как должны. Остальное не смотрел. Но это сразу бросается в глаза.
Location: / кажется надо с пробелом. Не уверен, но я делаю с пробелом. И если нет папки php на сервере, то может быть 404-я.