Функция mail();

Всё о языках программирования, таких как PHP и Perl; вебсерверах, CGI, базах данных и языке SQL.

Все про мови програмування, такі як PHP та Perl; вебсервери, CGI, бази даних та мову SQL.
navka
Сообщения: 3
Зарегистрирован: Пн май 23, 2016 7:27 pm
Пол: Не указан
Агент пользователя: Chrome Windows 1152x720

Функция mail();

Сообщение 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>';
    }  
oa-cru
Сообщения: 44
Зарегистрирован: Чт дек 15, 2016 5:38 pm
Пол: Не указан
Агент пользователя: Chrome Windows 1366x768

Функция mail();

Сообщение 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>';
    }  
Присоединяйтесь к нам на Facebook или vKontakte и получайте наши эксклюзивные предложения, а также будьте в курсе важных событий и новостей мира веб-хостинга!
navka
Сообщения: 3
Зарегистрирован: Пн май 23, 2016 7:27 pm
Пол: Не указан
Агент пользователя: Chrome Windows 1152x720

Функция mail();

Сообщение navka »

Подскажите пожалуйста, почему в таком случае письма на мой адрес не поступают :(
И спасибо за ответ!
Аватара пользователя
vozduch
Сообщения: 806
Зарегистрирован: Пт янв 08, 2016 11:47 am
Пол: Женщина
Агент пользователя: Chrome Linux 1366x768

Функция mail();

Сообщение vozduch »

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

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

Всегда рада помочь,
Мира,
Служба поддержки ZZZ
Приєднуйтесь до нас на Facebook або vKontakte та отримуйте наші ексклюзивні пропозиції, а також будьте в курсі важливих подій і новин світу веб-хостингів!
navka
Сообщения: 3
Зарегистрирован: Пн май 23, 2016 7:27 pm
Пол: Не указан
Агент пользователя: Chrome Windows 1152x720

Функция mail();

Сообщение 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";
Скриншот с моего аккаунта. Данный почтовый ящик существует, перенаправление отключено.
Изображение

В чем еще может быть проблема?
oa-cru
Сообщения: 44
Зарегистрирован: Чт дек 15, 2016 5:38 pm
Пол: Не указан
Агент пользователя: Chrome Windows 1366x768

Функция mail();

Сообщение oa-cru »

Добрый день!
Мы создали специально для вас новый почтовый ящик в Gmail:
Логин: testzzzcontact
Пароль: testzzzcontact1

Мы изменили Ваш скрипт так, чтобы письма приходили на этот ящик. Посмотрите и попробуйте.
Присоединяйтесь к нам на Facebook или vKontakte и получайте наши эксклюзивные предложения, а также будьте в курсе важных событий и новостей мира веб-хостинга!
wseer
Сообщения: 1
Зарегистрирован: Вс дек 04, 2016 11:14 am
Пол: Не указан
Агент пользователя: Firefox Windows 1366x768

Функция mail();

Сообщение wseer »

у меня таже проблема, имеется бесплатный хостинг, но письма не отправляются, имеется файл PHP с формой кода отправки сообщения самая простая для тестирования. Что не так?
<?
$to = "infoworldcom@mail.ru";
mail($to,"$sub",$mes);
?>
smersh
Пол: Не указан
Агент пользователя: Chrome Linux 1366x768

Функция mail();

Сообщение smersh »

Здравствуйте!
Ознакомьтесь, пожалуйста, с этой темой на нашем форуме viewtopic.php?f=10&p=3917#p3831.
wseer писал(а):у меня таже проблема, имеется бесплатный хостинг, но письма не отправляются, имеется файл PHP с формой кода отправки сообщения самая простая для тестирования. Что не так?
<?
$to = "infoworldcom@mail.ru";
mail($to,"$sub",$mes);
?>
metall-nn
Сообщения: 3
Зарегистрирован: Чт фев 01, 2018 9:36 pm
Пол: Не указан
Агент пользователя: Chrome Windows 1280x1024

Функция mail();

Сообщение 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:/');
}
Аватара пользователя
skyweb
Сообщения: 259
Зарегистрирован: Вт авг 22, 2017 3:29 pm
Откуда: Харьков
Пол: Мужчина
Агент пользователя: Chrome Linux 1280x1024

Функция mail();

Сообщение skyweb »

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

Вернуться в «PHP, CGI, SQL»