Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.79/19: Рейтинг темы: голосов - 19, средняя оценка - 4.79
5 / 4 / 2
Регистрация: 11.12.2013
Сообщений: 168

mail() не работает на сервере

12.01.2014, 11:40. Показов 3913. Ответов 38
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброе утро!
Такая непонятка:
используя функцию mail() на локальном сервере- все работает прекрасно. На сайте тот же скрипт выдает ошибку.
Что я не просчитал?
Спасибо!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.01.2014, 11:40
Ответы с готовыми решениями:

Функция mail не работает на сервере
Тех поддержка говорит что у них в принципе эта функция работать не будет. ссылаются на такой код: // Если нужно показать лог...

Не работает функция mail на сервере
Здравствуйте уважаемые форумчане! Есть проблема , при переносе сайта на облачный хостинг перестала работать функция php mail . Выдает при...

JS работает медленно на сервере. На локальном сервере быстро. В чём разница
Вечер добрый Сайт уже загрузил все JS/CSS/HTML. И после этого начинаются лаги. При открытие сайта с локального сервера - всё...

38
 Аватар для Ufon
19 / 19 / 7
Регистрация: 30.12.2012
Сообщений: 166
12.01.2014, 12:01
какую ошибку?
функция mail() может не поддерживаться сервером.
или ошибка в синтаксисе...
0
5 / 4 / 2
Регистрация: 11.12.2013
Сообщений: 168
12.01.2014, 12:29  [ТС]
Цитата Сообщение от Ufon Посмотреть сообщение
какую ошибку?
функция mail() может не поддерживаться сервером.
или ошибка в синтаксисе...
Проверяю так:
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
<?php 
 
 
$adr = $_POST['adr'];
$tema = $_POST['tema'];
$tekst = $_POST['tekst'];
 
 
if(isset($_POST['go']))
{
$mail = mail("$adr","$tema","$tekst", "Content-type: text/plain; charset=windows-1251;");   
if($mail)
{
    echo 'ВІДПРАВЛЕНО';
}
else
{
echo 'ERROR!!!';    
}
}
    else
    {
    echo '####ERROR!!!####';    
    }
?>
Добавлено через 46 секунд
Эту выдает:
PHP
1
2
3
4
else
{
echo 'ERROR!!!';    
}
0
601 / 569 / 104
Регистрация: 07.11.2010
Сообщений: 2,004
12.01.2014, 12:52
Цитата Сообщение от Максим_М21 Посмотреть сообщение
Эту выдает:
на серваке mail настроен-то вообще? посмотри в выводе phpinfo()
1
5 / 4 / 2
Регистрация: 11.12.2013
Сообщений: 168
12.01.2014, 13:54  [ТС]
Цитата Сообщение от panicwassano Посмотреть сообщение
посмотри в выводе phpinfo()
Посмотрел! Но не понимаю где искать в этом огромном списке.

Подскажите пожалуйста как прописать в php.ini разрешение для mail().
0
 Аватар для prudkiy
181 / 149 / 55
Регистрация: 21.07.2013
Сообщений: 958
13.01.2014, 21:56
не думаю что в php.ini вам разрешать что то делать. Может все таки что то не так с кодом. Вот рабочий код:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
 
 if(isset($_POST['sub'])){
   $tema = $_POST['tema'];
   $adres = $_POST['adres'];
   $text = $_POST['text'];
 
        $massage = $text;
        $to = $adres;
        $from = "prudcky@yandex.ua";
        $subject = $tema;
        $subject = "=?utf-8?b?".base64_encode($subject)."?=";
        $headers = "From: $from\r\nReply-to:$from\r\nContent-type:text/html;charset=utf-8\r\n";
        mail($to, $subject, $massage, $headers);
        echo "отправлено"; 
 }
 else echo "не отправлено";
 
?>
1
5 / 4 / 2
Регистрация: 11.12.2013
Сообщений: 168
15.01.2014, 00:27  [ТС]
Огромное СПАСИБО prudkiy!!! Я свой усовершенствовал, но не пойму эту строчку.

Цитата Сообщение от prudkiy Посмотреть сообщение
$subject = "=?utf-8?b?".base64_encode($subject)."?=";
Добавлено через 2 минуты
Вот ошибка которую выдает мой сайт:

Forbidden

You don't have permission to access /mail/index.php on this server.

Apache/2.2.15 (CentOS) Server at blognauki.in.ua Port 80

Что с этим делать подскажите?
0
 Аватар для prudkiy
181 / 149 / 55
Регистрация: 21.07.2013
Сообщений: 958
15.01.2014, 02:41
Вот еще раз рабочий код (убрал прием данных с формы, так проще будет разобраться)
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
 
   $tema = 'tema';
   $adres = 'addres@df.ua';
   $text = 'это текст';
 
        $massage = $text;
        $to = $adres;
        $from = "prudcky@yandex.ua";
        $subject = $tema;
        $subject = "=?utf-8?b?".base64_encode($subject)."?=";
        $headers = "From: $from\r\nReply-to:$from\r\nContent-type:text/html;charset=utf-8\r\n";
        $res = mail($to, $subject, $massage, $headers);
        if($res)echo "отправлено"; 
        else echo "не отправлено";
 
?>
А то что выдал тебе браузер означает что нужно менять сервер, он запрещает использовать функцию mail(), довольно таки редкое явление.

Добавлено через 8 минут
Цитата Сообщение от Максим_М21 Посмотреть сообщение
Огромное СПАСИБО prudkiy!!! Я свой усовершенствовал, но не пойму эту строчку.



Добавлено через 2 минуты
Вот ошибка которую выдает мой сайт:

Forbidden

You don't have permission to access /mail/index.php on this server.

Apache/2.2.15 (CentOS) Server at blognauki.in.ua Port 80

Что с этим делать подскажите?
по поводу этой строчки то сильно не заморачивайся, ее код никогда не меняется, ну разве что тебе нужно будет изменить кодировку, но как на меня лучше всегда ставить utf8, чтоб без сюрпризов.Это просто чтоб тема сообщения отображалась корректно, а не крякозябликами )
1
 Аватар для esculap_ra
462 / 265 / 55
Регистрация: 22.08.2010
Сообщений: 1,204
Записей в блоге: 4
15.01.2014, 03:02
Цитата Сообщение от prudkiy Посмотреть сообщение
что нужно менять сервер, он запрещает использовать функцию mail(), довольно таки редкое явление.
Это еще не окончательный запрет, но указание на недостаточный правовой (permission) уровень. Все можно решить через службу поддержки. Если нет, тогда ты прав - пора валить заграницу.
1
601 / 569 / 104
Регистрация: 07.11.2010
Сообщений: 2,004
15.01.2014, 11:11
Цитата Сообщение от prudkiy Посмотреть сообщение
не думаю что в php.ini вам разрешать что то делать.
Цитата Сообщение от Максим_М21 Посмотреть сообщение
PHP
1
$mail = mail("$adr","$tema","$tekst", "Content-type: text/plain; charset=windows-1251;"); if($mail) { echo 'ВІДПРАВЛЕНО'; } else { echo 'ERROR!!!'; } }
Цитата Сообщение от Максим_М21 Посмотреть сообщение
Эту выдает:
PHP
1
2
3
{
echo 'ERROR!!!'; 
}
пишем в поддержку и смотрим лог сервака
1
5 / 4 / 2
Регистрация: 11.12.2013
Сообщений: 168
15.01.2014, 23:22  [ТС]
Цитата Сообщение от prudkiy Посмотреть сообщение
<?php
$tema = 'tema';
* *$adres = 'addres@df.ua';
* *$text = 'это текст';
$massage = $text;
* * * * $to = $adres;
* * * * $from = "prudcky@yandex.ua";
* * * * $subject = $tema;
* * * * $subject = "=?utf-8?b?".base64_encode($subject)."?=";
* * * * $headers = "From: $from\r\nReply-to:$from\r\nContent-type:text/html;charset=utf-8\r\n";
* * * * $res = mail($to, $subject, $massage, $headers);
* * * * if($res)echo "отправлено";
* * * * else echo "не отправлено";
?>
Я разобрался, спасибо!
Ни как не мог настроить код под разсылку используя список с базы, так чтобы получатели не видели других адресов списка.
Выход нашел:
PHP
1
2
3
4
while($row = mysql_fetch_array($result))
{
    $mal = mail($row['mail'],$subject, $massage, $headers);
}
Теперь с сервером надо разобраться. Сей час напишу им.
Спасибо!
0
23 / 23 / 6
Регистрация: 11.12.2011
Сообщений: 300
15.01.2014, 23:40
на сервере может быть такой прикол, что отправить письмо можно только от определенного почтового ящика. Так как функции mail() все равно от имени какого ящика посылать письма и собственно через неё можно отослать письмо хоть от президента. Так, что уточните у хостера данный вопрос.
2
5 / 4 / 2
Регистрация: 11.12.2013
Сообщений: 168
16.01.2014, 19:46  [ТС]
Ребята, новая проблема. В поддержку написал, сказали что запустили. Но теперь при отправки рассылки, мне на почту приходит письмо:

This is the mail system at host hosting1.citydomain.com.ua.

I'm sorry to have to inform you that your message could not
be delivered to one or more recipients. It's attached below.

For further assistance, please send mail to postmaster.

If you do so, please include this problem report. You can
delete your own text from the attached returned message.

The mail system

Вот мой код:

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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
<?php ?>
 
<form action="index.php" method="POST">
<?php
include_once ("db.php");
 
    
 
$result = mysql_query(" SELECT mail FROM mail                   
                    ");
                    mysql_close();
                    
        ?>
 
 
 
 
 
Тема:<br/>
<input type="text" name="tema" /><br/><br/>
 
Текст:<br/>
 
 
<textarea type="text" name="tekst" cols="15" rows="8"></textarea><br>
 
<input type="submit" name="go" value="Відправити" /><br/>
 
 
 
</form>
<?php 
 
echo '<br/><br/><br/>';
 
$tema = $_POST['tema'];
$tekst = $_POST['tekst'];
$from = "admin@blognauki.in.ua";
 
 
 $massage = $tekst;
 
        
        $subject = $tema;
       $massage = $tekst;
        $headers = "From: $from\r\nReply-to:$from\r\nContent-type:text/html;windows-1251\r\n";
     
 
while($row = mysql_fetch_array($result))
{
    $mal = mail($row['mail'],$subject, $massage, $headers);
}
 
 
if(isset($_POST['go']))
{   
 
 
if($mal)
{
    echo 'ВІДПРАВЛЕНО';
}
else
{
echo 'ERROR!!!';    
}
}
    else
    {
    echo '####ERROR!!!####';    
    }
?>
Может ошибка в нем?
0
 Аватар для prudkiy
181 / 149 / 55
Регистрация: 21.07.2013
Сообщений: 958
16.01.2014, 22:20
Ну для начала убери в textarea атрибут type=text, так как само поле подразумевает что в него будет введено текст, и такой атрибут является ошибкой(хотя на скорость это не влияет).
По коду пока не ясно. Что сказали в техподдержке? В качестве адреса отправителя ты можешь использовать только конкретный email?
Что заметил так это ошибку в $headers, у тебя -
PHP
1
$headers = "From: $from\r\nReply-to:$from\r\nContent-type:text/html;windows-1251\r\n";
должно быть -
PHP
1
$headers = "From: $from\r\nReply-to:$from\r\nContent-type:text/html;charset=windows-1251\r\n";
Добавлено через 3 минуты
кстати, в письме сказано что Ваше письмо не было доставлено
1
5 / 4 / 2
Регистрация: 11.12.2013
Сообщений: 168
17.01.2014, 00:00  [ТС]
Цитата Сообщение от prudkiy Посмотреть сообщение
Что сказали в техподдержке?
Здравствуйте. Функция mail открыта. Вы несете полную ответственность за безопасное использование данной возможности. В случае спама или злоупотребления данной возможности , функция mail будет заблокирована, без возможности восстановления.

Спасибо за найденную ошибку.

Добавлено через 6 минут
Подскажите как быть.
У меня есть форма с которой я планирую отсылать подписчикам текст с ссылками на статьи.
<textarea> пропустит html текст (чтобы в код не лесть просто скопировать его в форму), или есть другой способ?
0
23 / 23 / 6
Регистрация: 11.12.2011
Сообщений: 300
17.01.2014, 00:05
textarea, то пропустит, а вот вам скорее всего будет не очень читабельно и до отправки вы не будете точно знать как будет выглядеть это на почте. Я бы прикрутил себе какой-то плагин типа TinyMCE
1
5 / 4 / 2
Регистрация: 11.12.2013
Сообщений: 168
17.01.2014, 00:14  [ТС]
А без плагина ни как?
У меня простенькая задача:
1)Новая статья;
2)Я отсылаю подписчикам:
"Здравствуйте есть новая статья <a href="">СТАТЬЯ</a>"

Можно просто?
0
 Аватар для esculap_ra
462 / 265 / 55
Регистрация: 22.08.2010
Сообщений: 1,204
Записей в блоге: 4
17.01.2014, 00:24
Цитата Сообщение от Максим_М21 Посмотреть сообщение
А без плагина ни как?
У меня простенькая задача:
1)Новая статья;
2)Я отсылаю подписчикам:
"Здравствуйте есть новая статья <a href="">СТАТЬЯ</a>"

Можно просто?
А ты не пробовал отправить сообщение себе на ящик?
0
5 / 4 / 2
Регистрация: 11.12.2013
Сообщений: 168
17.01.2014, 00:30  [ТС]
Пробовал. Сейчас первый раз получилось, но только на один адрес.
Что то с кодом не так
0
 Аватар для prudkiy
181 / 149 / 55
Регистрация: 21.07.2013
Сообщений: 958
17.01.2014, 01:30
не нужно никакого плагина. Функция mail(); имеет возможность отсылать письмо множеству адресатов. А ссылку на статью в письме просто прописывайте как обычно, так как в headers у вас указано text/html. Когда почтовый клиент будет выводить такое письмо он будет рассматривать html теги как код, а не текст. Можете сначала сверстать такое письмо, а потом использовать его как шаблон в $massage, только вот листать лучше так как будто верстаете для IE6. Я пробовал применять стили - работает, но вроде как не рекомендуют.

Добавлено через 12 минут
и да, textarea пропустит html код )
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.01.2014, 01:30
Помогаю со студенческими работами здесь

создать mail на сервере
Подскажите пожалуйста как сделать для своего движка mail, вот например на сервере есть сайт, этот сайт мой, я установил на него вордпрес,...

Mail() на локальном сервере
Захотелось потестить функцию mail() на локальном сервере. Я начал гуглить, и почти во всех форумах советовали установить openserver и тому...

Добавление e-mail в список рассылки на сервере...
Здравствуйте... Чтож...не поможите и новичкам? Понимаю что видимо данный механизм предельно прост, но всё же че то ничего в голову не...

Работа с MRIM протоколом: авторизоваться на сервере mail.ru агента
Вообщем пытаюсь авторизироваться на сервере mail.ru агента Подключаюсь -&gt; получаю какой-то ответ (ip,port) И теперь стопор... ...

PHP скрипт (SellFileEasy) работает на локальном сервере, но не работает на хостинге
Всем доброго времени суток! Данный скрипт предназначен для продажи файлов. При переходе на ссылку файла, скрипт блокирует доступ к...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru