Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Не отправляется простейшая почта mail
Форумы портала PHP.SU » » Вопросы новичков » Не отправляется простейшая почта mail

Страниц (2): [1] 2 »
 

1. Webtest - 16 Сентября, 2014 - 12:18:24 - перейти к сообщению
Здравствуйте.

Подскажите, почему простейший код по отправке почты выдает ошибку, а не отправляет почту?
PHP:
скопировать код в буфер обмена
  1. $to1 = 'тут мой почтовый ящик';
  2. $subject1 = 'head';
  3. $message1 = 'message';
  4. $test = mail($to1, $subject1, $message1);
  5. if (!$test) {
  6.         echo 'error';
  7. }
2. Sail - 16 Сентября, 2014 - 12:34:45 - перейти к сообщению
Webtest пишет:
почему простейший код по отправке почты выдает ошибку, а не отправляет почту?

Быть может, стоит для начала глянуть логи почтового сервера, или php_error_log, или mail.log?
3. RickMan - 16 Сентября, 2014 - 12:55:02 - перейти к сообщению
Если следовать документации и коду который вы дали то получается, что у вас "иной случай".
Вырезка из документации:
Цитата:
mail() возвращает TRUE, если почта была успешно принята для доставки, FALSE в ином случае.

Помогло?
4. Webtest - 16 Сентября, 2014 - 13:00:31 - перейти к сообщению
Sail, а где эти логи глянуть? Через ерор_репорт-1 ничего не выводит.
5. RickMan - 16 Сентября, 2014 - 13:22:47 - перейти к сообщению
Попробуй так:
PHP:
скопировать код в буфер обмена
  1. ini_set('error_reporting', E_ALL);
  2. ini_set('display_errors', 1);
  3. ini_set('display_startup_errors', 1);

Именно вставь это до отправки емайла...
А по поводу логов. Вы не думали указать хотябы ОС?
6. Webtest - 16 Сентября, 2014 - 13:33:22 - перейти к сообщению
RickMan, не знаю, а где глянуть в чем состоит этот иной случай?
Да, я это уже смотрел.
(Добавление)
RickMan, ubuntu, вставил, все равно ни 1 лога об ошибке, только вывод еррор с !$test
7. RickMan - 16 Сентября, 2014 - 13:44:34 - перейти к сообщению
Цитата:
/var/log/apache2/error.log
- там логи ошибок.
И вместо вывода просто слова error попробуй это:
8. Sail - 16 Сентября, 2014 - 13:44:51 - перейти к сообщению
Webtest пишет:
Sail, а где эти логи глянуть? Через ерор_репорт-1 ничего не выводит.

Гляньте тут
9. Webtest - 16 Сентября, 2014 - 14:00:49 - перейти к сообщению
ВОт лог с /var/log/apache2/error.log:
Спойлер (Отобразить)
10. RickMan - 16 Сентября, 2014 - 14:07:44 - перейти к сообщению
У тебя не установлен sendmail
http://www[dot]codechewing[dot]com/libra[dot][dot][dot]error-phpmailer/
11. dcc0 - 16 Сентября, 2014 - 14:23:47 - перейти к сообщению
RickMan пишет:
mail() возвращает TRUE, если почта была успешно принята для доставки, FALSE в ином случае.

Под Windows так, если php.ini настроен, т.е.

[mail function]
; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
sendmail_path = "C:\sendmail\sendmail.exe -t -i"

то в любом случае вернется true, даже если sendmail вообще нет. Функция php отдала задачу, а дальше не ее дело =)
Под win в php.ini достаточно строчки к sendmail.exe
но под linux примерно то же самое.
В любом случае надо настраивать sendmail.ini

И почему никто почту через сокеты не хочет отправлять?
12. Webtest - 16 Сентября, 2014 - 14:37:43 - перейти к сообщению
dcc0 пишет:
И почему никто почту через сокеты не хочет отправлять?

Это как?
13. dcc0 - 16 Сентября, 2014 - 14:40:10 - перейти к сообщению
http://www.php.su/articles/?cat=...ail&page=007
В принципе там рабочий пример.
Я правда, для себя его немного модифицировал
14. RickMan - 16 Сентября, 2014 - 14:46:30 - перейти к сообщению
Ну как по мне, так тогда уже лучше использовать сторонник сервисы. К примеру
http://mandrill[dot]com/
Есть готовое API на PHP и 12000 писем в месяц слать можно за бесплатно. Так письма 100% дойдут... И гемора с настройкой нету...
15. dcc0 - 16 Сентября, 2014 - 18:16:39 - перейти к сообщению
Я так понимаю, надо отправлять с сайта письма на ящик на другом сайте? Т.е. что-то вроде relay
Тут вроде есть такой рецепт
http://realadmin[dot]ru/saytostroy/f[dot][dot][dot]-on-hosting[dot]html


Если с sendmail не получается рецепт для Ubuntu для exim
http://www[dot]it-35[dot]ru/linux-world/[dot][dot][dot]cherez-exim[dot]html

 

Powered by ExBB FM 1.0 RC1