Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 03.07.2017 20:27:26

не работает Mail::send на хостинге

Я выложил сайт на хостинг Beget,
и все работает )включая админку) кроме отправки на почту сообщений из форм обратной связи.
При этом просто виснет и пишет что "что-то пошло не так) .
В .env прописано:
MAIL_DRIVER=smtp
MAIL_HOST=smtp.beget.com
MAIL_PORT=25
MAIL_USERNAME= ////моя почта
MAIL_PASSWORD= /…мой правильный пароль написан…/
MAIL_ENCRYPTION=
MAIL_ADMIN= ////моя почта
может кто-то сталкивался с проблемой??
хостинг ничем толком не помогает...
На Open server при разработке все работало (но с записью в файл конечно).

  $data = $request->all();
  $result = Mail::send('site.garant', ['data' => $data], function ($message) use ($request, $data) {
  $mail_admin = env('MAIL_ADMIN');
  $message->to($mail_admin, 'Admin')->subject('Mail');

Не в сети

#2 03.07.2017 20:55:59

Re: не работает Mail::send на хостинге

судя по https://beget.com/ru/faq/mail_gen
хост для smtp - smtp.beget.ru (а не com)

"При этом просто виснет и пишет что "что-то пошло не так) ." - логи не помешали бы

а здесь наоборот https://beget.com/ru/articles/mail_main smile

заодно убедись, что не превысил ограничения. они по ссылке выше

Изменено covobo (03.07.2017 20:58:43)

Не в сети

#3 03.07.2017 21:05:02

Re: не работает Mail::send на хостинге

smtp.beget.com мне дали в ответе техники хостинга
(но с .ru тоже попробовал - не пашет))))
превышения количества писем нет у меня

Не в сети

#4 03.07.2017 21:40:29

Re: не работает Mail::send на хостинге

поставил лог и на запись на хосте
access.log выдает
"POST / HTTP/1.1" 500 20824
а error.log пусто вАААще)))

Не в сети

#5 03.07.2017 21:45:11

Re: не работает Mail::send на хостинге

так там и не должно быть, либо логи ларавела, либо логи php

Не в сети

#6 03.07.2017 21:49:37

Re: не работает Mail::send на хостинге

поставил папке storage/logs/ полные права на запись
но все равно не пишет Laravel логи
блин)))

Не в сети

#7 03.07.2017 22:08:11

Re: не работает Mail::send на хостинге

сам метод POSTна форме отрабатывается - так как валидация (и вывод ошибок по полям на странцу) происходит нормально
но ка только до отправки доходит - виснет....

Не в сети

#8 03.07.2017 23:28:31

Re: не работает Mail::send на хостинге

ssh доступ есть? что за хостинг?
если vps/vds - проверь работу smtp через telnet или утилитку ssmtp + если vps/vds может быть файрвол блочит (https://tecadmin.net/ways-to-send-email-from-linux-command-line/ 4ый и 5ый способ), если telnet будешь запускать впервые - посмотри немного примеры использования, не очень дружелюбная утилитка.

Изменено covobo (03.07.2017 23:29:08)

Не в сети

#9 03.07.2017 23:31:14

Re: не работает Mail::send на хостинге

сделал для Laravel показ ошибок
и вылездо подробно
Expected response code 250 but got code "550", with message "550-LTD BeGet: MAIL FROM must match AUTHENTICATED USER (MAIL FROM:
550 'admin@admin.com' != AUTH LOGIN: 'administrator@atlantida-dogs.ru')
"
сайт мой http://msk04.bget.ru/

Изменено mikle2017 (03.07.2017 23:31:41)

Не в сети

#10 03.07.2017 23:37:02

Re: не работает Mail::send на хостинге

я блин сам тупой))))
from поправил на мыло админское - и пошло!
я начинающий Лара-юзер и полагал что в message вкладываю from это адрес из формы отправителем заполненный

$message->from($mail_admin, 'Admin');

Изменено mikle2017 (03.07.2017 23:54:01)

Не в сети

#11 04.07.2017 05:57:02

Re: не работает Mail::send на хостинге

From лучше в уведомлениях проставлять технический, типа noreply@example.com

причина в том если отправляется письмо с my@user.com то для домена отправителя (user.com) может быть настроена SPF-запись, запрещающая отправку почты для домена user.com с посторонних IP. результат будет зависеть от характера запрета: для softfail это скорее всего попадание в спам, при hardfail письмо вообще не будет доставлено. причём ты это никак не можешь контролировать…

если тебе нужно иметь возможность кнопкой «ответить» написать сразу на мыло пользователю, есть очень простое решение – положить его адрес не во From а в Reply-To! в итоге и письмо дойдёт (отправляешь со своего домена) и ответ будет написан кому следует…

Не в сети

Подвал раздела