Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
 Аватар для Konark
5 / 5 / 3
Регистрация: 20.01.2012
Сообщений: 218

Не работает mail()

23.01.2017, 00:54. Показов 1715. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер.
Что-то не работает функция mail(), хотя на хостинге есть возможность отправлять почту (тестил более примитивным).

Форма:
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<form class="mg-t-sm" role="form" method="post" action="php/rsvp.php" id="rsvpForm">
                <div class="form-group">
                  <label class="sr-only" for="yourName">Ваше полное имя</label>
                  <input class="form-control" name="yourName" type="text" id="yourName" placeholder="Ваше полное имя" required>
                </div>
                <div class="form-group">
                  <label class="sr-only" for="yourEmail">Ваш email адрес</label>
                  <input class="form-control" name="yourMail" type="email" id="yourEmail" placeholder="Ваш email адрес" required>
                </div>
                <div class="form-group">
                  <label class="sr-only" for="yourGuests">Количество гостей</label>
                  <input class="form-control" name="yourGuests" type="text" id="yourGuests" placeholder="Количество гостей" required>
                </div>
                <div class="form-group">
                  <label class="sr-only" for="yourMessage">Ваши пожелания молодоженам</label>
                  <input class="form-control" name="yourReal" type="hidden" id="yourReal">
                </div> 
                <div class="form-group">
                  <textarea class="form-control" name="yourMessage" id="yourMessage" placeholder="Ваши пожелания молодоженам" rows="6"></textarea>
                </div>
                <div class="submit-wrap">                            
                  <button class="btn btn-primary btn-lg" type="submit">Отправить</button>
                </div>
                <div id="successMsg" class="hidden">
                  <br>
                  <div class="alert alert-success">
                    <p>Thanks, your message has been sent!</p>
                  </div>
                </div>                
              </form>
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<?php 
 
$to      = "adobe-master@ukr.net";         // add your email address
$subject = "RSVP form submission";     // the subject of emails
 
/* ------------------------------------------------------------------ */
 
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
 
    $name    = check_input($_POST['name']);
    $email   = check_input($_POST['email']);
    $guests   = check_input($_POST['guests']);
    $message = check_input($_POST['message']);
    $human   = check_input($_POST['human']);
 
    if (empty($human)) {
        $headers  = "From: " . $to . "\r\n";
        $headers .= "Reply-To: ". $email . "\r\n";
        $headers .= "MIME-Version: 1.0\r\n";
        $headers .= "Content-Type: text/html; charset=UTF-8\r\n";
 
        $body = "<html><body>";
        $body .= "<h1>" . $subject . "</h1>";
        $body .= "<p><strong>Name: </strong>" . $name . "</p>";
        $body .= "<p><strong>E-mail: </strong>" . $email . "</p>";
        $body .= "<p><strong>Guests: </strong>" . $guests . "</p>";        
        $body .= "<p>" . strip_tags($message) . "</p>";
        $body .= "</body></html>";
 
        if (!empty($to) && !empty($subject) && !empty($name) && !empty($email) && !empty($guests) && filter_var($email, FILTER_VALIDATE_EMAIL) && !empty($message)) {
            mail($to, $subject, $body, $headers);
            echo("success");
        }
    } else { echo("success"); }
}
 
function check_input($data) {
    $data = trim($data);
    $data = stripslashes($data);
    $data = htmlspecialchars($data);
    $data = strip_tags($data);
    return $data;
}
?>
Буду благодарен за помощь!
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.01.2017, 00:54
Ответы с готовыми решениями:

Не работает mail
если точнее, то при выполнении такого кода: echo &quot;&lt;hr&gt;&lt;hr&gt;&lt;hr&gt;&lt;hr&gt;&quot;; if (mail(&quot;sky2.0.line.7@gmail.com&quot;,...

mail не работает
без лишних слов... echo ' &lt;form method=&quot;post&quot;&gt; &lt;p&gt;&lt;span&gt;Ваш &lt;span style=&quot;color: red;&quot;&gt;НАСТОЯЩИЙ&lt;/span&gt; e-mail:&lt;/span&gt; &lt;input...

Не работает mail()
Просто решил разобраться, как отправить письмо на e-mail, ничего не работает. &lt;?php mail(&quot;Мой адрес&quot;,...

15
 Аватар для BearBaloo
41 / 41 / 16
Регистрация: 04.10.2016
Сообщений: 154
23.01.2017, 04:52
Что значит не работает? ошибки какие?
0
930 / 846 / 190
Регистрация: 28.11.2013
Сообщений: 3,621
23.01.2017, 10:58
Во From укажите нормальный ящик на сервере.

Добавлено через 2 минуты
Цитата Сообщение от Konark Посмотреть сообщение
empty($human)
Может, !empty?
0
 Аватар для Konark
5 / 5 / 3
Регистрация: 20.01.2012
Сообщений: 218
23.01.2017, 12:35  [ТС]
BearBaloo, не получаю письма.
0
 Аватар для BearBaloo
41 / 41 / 16
Регистрация: 04.10.2016
Сообщений: 154
23.01.2017, 14:49
Локализируйте ошибку, возможно не настроен смтп на сервере, и еще много "возможно", я пользуюсь PHPMailer ни разу не подводила.
0
 Аватар для Konark
5 / 5 / 3
Регистрация: 20.01.2012
Сообщений: 218
23.01.2017, 19:19  [ТС]
Попробовал написать свою функцию отправки, работает, а вот именно с этой формой не работает. Непонятно в чем проблема.

Такое чувство что эта форма даже не вызывает функцию.
0
 Аватар для AnonymC
1183 / 468 / 87
Регистрация: 23.06.2009
Сообщений: 6,390
23.01.2017, 22:43
Лучший ответ Сообщение было отмечено Konark как решение

Решение

Konark, в клиентской части увидел имя input поля - "yourName", в серверной части же это уже "name". Дальше не стал пролистывать код. Будьте внимательнее.
1
 Аватар для Konark
5 / 5 / 3
Регистрация: 20.01.2012
Сообщений: 218
24.01.2017, 00:09  [ТС]
Цитата Сообщение от ^Tecktonik_KiLLeR Посмотреть сообщение
Konark, в клиентской части увидел имя input поля - "yourName", в серверной части же это уже "name". Дальше не стал пролистывать код. Будьте внимательнее.
Да... Моя ошибка

Исправил, даже убрал анти-спам этот, не помогло...
Увы.

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<?php 
 
$to      = "adobe-master@ukr.net";         // add your email address
$subject = "RSVP form submission";     // the subject of emails
 
/* ------------------------------------------------------------------ */
 
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
 
    $name    = check_input($_POST['yourName']);
    $email   = check_input($_POST['yourMail']);
    $guests   = check_input($_POST['yourGuests']);
    $message = check_input($_POST['yourMessage']);
    //$human   = check_input($_POST['yourReal']);
 
        $headers  = "From: " . $to . "\r\n";
        $headers .= "Reply-To: ". $email . "\r\n";
        $headers .= "MIME-Version: 1.0\r\n";
        $headers .= "Content-Type: text/html; charset=UTF-8\r\n";
 
        $body = "<html><body>";
        $body .= "<h1>" . $subject . "</h1>";
        $body .= "<p><strong>Name: </strong>" . $name . "</p>";
        $body .= "<p><strong>E-mail: </strong>" . $email . "</p>";
        $body .= "<p><strong>Guests: </strong>" . $guests . "</p>";        
        $body .= "<p>" . strip_tags($message) . "</p>";
        $body .= "</body></html>";
 
        if (!empty($to) && !empty($subject) && !empty($name) && !empty($email) && !empty($guests) && filter_var($email, FILTER_VALIDATE_EMAIL) && !empty($message)) {
            if(mail($to, $subject, $body, $headers)){
            echo("success");}
        }
}
 
function check_input($data) {
    $data = trim($data);
    $data = stripslashes($data);
    //$data = htmlspecialchars($data);
    $data = strip_tags($data);
    return $data;
}
?>
0
930 / 846 / 190
Регистрация: 28.11.2013
Сообщений: 3,621
24.01.2017, 02:51
Во From укажите нормальный ящик на сервере.
0
 Аватар для Konark
5 / 5 / 3
Регистрация: 20.01.2012
Сообщений: 218
24.01.2017, 14:23  [ТС]
miketomlin, пробовал
Создавал ящик, не реагирует.

Форма как-будто не вызывает скрипт.
0
 Аватар для AnonymC
1183 / 468 / 87
Регистрация: 23.06.2009
Сообщений: 6,390
24.01.2017, 17:16
Konark, Форма вызывает скрипт. Закомментируйте эту строку
PHP
1
if (!empty($to) && !empty($subject) && !empty($name) && !empty($email) && !empty($guests) && filter_var($email, FILTER_VALIDATE_EMAIL) && !empty($message)) {
Данную проверку можно отдельной функцией провести.
0
930 / 846 / 190
Регистрация: 28.11.2013
Сообщений: 3,621
24.01.2017, 17:23
Цитата Сообщение от Konark Посмотреть сообщение
Форма как-будто не вызывает скрипт.
А что это так трудно проверить? Вставили echo в начало обработчика и посмотрели. Потом этот echo постепенно начинаете придвигать к mail. Вот такая вот простейшая отладка.
0
 Аватар для Konark
5 / 5 / 3
Регистрация: 20.01.2012
Сообщений: 218
24.01.2017, 18:36  [ТС]
Цитата Сообщение от miketomlin Посмотреть сообщение
А что это так трудно проверить? Вставили echo в начало обработчика и посмотрели. Потом этот echo постепенно начинаете придвигать к mail. Вот такая вот простейшая отладка.
Хорошо. Есть другой скрипт:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
<?php
// Сообщение
$email = $_POST["yourMail"];
$fullname = $_POST["yourName"];
$number = $_POST["yourGuests"];
$textmessage = $_POST["yourMessage"];
$subject = "Новый гость - " .$fullname. "!";
$message = "Email отправителя - " .$email. "; Полное имя гостя: " .$fullname. "; Количество гостей: " .$number. "; Пожелание Вам: " .$textmessage. ";";
 
// Отправляем
mail('adobe-master@ukr.net', $subject, $message);
?>
Если я его просто запускаю, не с формы, то все срабатывает. Пытаюсь формой вызвать, не срабатывает. Опять же, как-будто форма не вызывает скрипт.
Но, что не так в форме?
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
24.01.2017, 23:16
Konark, об этом вам должны сказать вкладка Network/Сеть в браузере, либо код
PHP
1
var_dump($_POST);
а также проверить ответ mail тоже не мешало бы - может, false выдает?
ну и на крайняк, можно заменить mail на var_dump и посмотреть, что вы вообще туда передаете.

Добавлено через 1 минуту
З.Ы. в связи с ужесточением проверок на mail.ru проблема может быть также при адресе отправителе домена @mail.ru
1
 Аватар для Konark
5 / 5 / 3
Регистрация: 20.01.2012
Сообщений: 218
25.01.2017, 02:57  [ТС]
Цитата Сообщение от KOPOJI Посмотреть сообщение
об этом вам должны сказать вкладка Network/Сеть в браузере, либо код
Всем спасибо за ответы!
Проверил через эту вкладку, форма вызывает скрипт и уже все приходит, правда в папку спам, но то такое.
0
930 / 846 / 190
Регистрация: 28.11.2013
Сообщений: 3,621
25.01.2017, 18:55
Чтобы не приходило в спам, нужно во From прописать нормальный ящик на вашем домене и указать в SPF-записи домена адрес почтового сервера, обычно IPv4. Есть еще PTR, если у вас сервак или хотя бы выделенный IP.

Добавлено через 3 минуты
Также не помешает почитать про кодирование заголовков письма вроде Subject.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.01.2017, 18:55
Помогаю со студенческими работами здесь

Не работает mail()
Здравствуйте! Учу потихоньку php, дошел до отправки писем. Функция mail() не работает mail('testtest@inbox.ru', 'тест', 'тест'); письма нет...

Программно поиск сообщения в e-mail от @xxx.xxx. С аккаунта любого e-mail сервиса, gmail, ya, mail и т.п
в программе нужно авторизоваться в мыле, найти сообщение от @xxxx.xxx, и получить содержание этого письма. Как реализовать проще и надежнее?

не работает функция mail()
отправляю письмо себе на ящик $result = mail('rembo-87@yandex.ru', 'Hello!', 'Hello this is a test of email'); делаю проверку ...

Не работает функция mail
Добрый вечер, подскажите, почему не присылается письмо? Ни локально, ни на хостинге.. В чем мой косяк? &lt;?php $name =...

Не работает функция mail()
Всем привет!:) Помогите, не работает функция mail() - письма не приходят в mail.ru, gmail. В чем может быть проблема?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru