Функция mail();

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

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

Функция mail();

Сообщение navka » Чт янв 05, 2017 3:40 pm

Здравствуйте! Подскажите пожалуйста, почему не работает данный код для отправки сообщений. Ошибок нет, но письмо все равно не поступает на почту. Буду благодарна!

CodeColon Select All Code

<?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 » Чт янв 05, 2017 7:12 pm

Добрый вечер!
Мы проверили Ваш код - всё отлично. Вот тут наши маленькие правки:

CodeColon Select All Code

<?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 » Чт янв 05, 2017 7:18 pm

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

Функция mail();

Сообщение vozduch » Сб янв 07, 2017 8:05 am

Здравствуйте,
они не поступают из-за неправильного значения заголовка 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 » Вс янв 08, 2017 11:50 am

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

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

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


Спасибо за Ваш отзыв! Часть кода с From:

CodeColon Select All Code

$headers = 'From: admin@justatest.kl.com.ua' . "\r\n";


Скриншот с моего аккаунта. Данный почтовый ящик существует, перенаправление отключено.
Image

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

Функция mail();

Сообщение oa-cru » Вс янв 08, 2017 1:58 pm

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

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

Функция mail();

Сообщение wseer » Вс янв 15, 2017 9:35 pm

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

Функция mail();

Сообщение smersh » Вт янв 17, 2017 4:54 pm

Здравствуйте!
Ознакомьтесь, пожалуйста, с этой темой на нашем форуме viewtopic.php?f=10&p=3917#p3831.

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

Функция mail();

Сообщение metall-nn » Вт фев 06, 2018 9:15 am

добрый день , подскажите почему ошибка 404???

CodeColon Select All Code

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

Функция mail();

Сообщение skyweb » Вт фев 06, 2018 9:50 am

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

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

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость