Функция 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
Повідомлень: 795
З нами з: П'ят січня 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”