Laravel по-русски
Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Нужна помощь. Уже какой день мучаюсь и не могу решить проблему. Пользовался и гуглом и на этом форуме искал. На данном framework не разрабатывал ничего (это первый взгляд во внутренности).
Мне необходимо сайт на Laravel перенести на другой хостинг с другим доменом. Сайт перенес и он вроде как работает, а с отправкой почты не могу справится. На старом хостинге работало. Установкой почти всех компонентов занимался сам. Может что-то не доставил. Если что есть пока возможность залесть на сервер старого сайта.
Версия Laravel: 5.4
Версия PHP: 7.0
Операционная система и её версия: Ubuntu 16.04
Вендор и версия Веб-сервера: Apache 2.4.18
Медод подключения PHP: модуль
Почта: Postfix
Вообще хочу чтобы отправлялась почта как по функции mail или smtp, но локальный, а не gmail или еще какой-то. Но настроить не получилось никак.
При переносе сайта выполнял команды
php composer.phar install
php composer.phar update
php artisan serveИз командной строки почта отправляется
echo "This is the body of the email" | mail -s "This is the subject line" your_email_addressС отдельного файла с функцией mail() тоже отправляется.
Настройки конфигов Laravel.
.env
MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=login@gmail.com
MAIL_PASSWORD=pass
MAIL_ENCRYPTION=tls
MAIL_PRETEND=false
MAIL_FROM_ADDRESS=login@gmail.com
MAIL_FROM_NAME=login/config/mail.php
'driver' => env('MAIL_DRIVER'),
'host' => env('MAIL_HOST'),
'port' => env('MAIL_PORT'),
'from' => [
'address' => env('MAIL_FROM_ADDRESS', 'hello@example.com'),
'name' => env('MAIL_FROM_NAME', 'Example'),
],
'stream' => [
'ssl' => [
'allow_self_signed' => true,
'verify_peer' => false,
'verify_peer_name' => false,
],
],
'encryption' => env('MAIL_ENCRYPTION'),
'username' => env('MAIL_USERNAME'),
'password' => env('MAIL_PASSWORD'),
'sendmail' => '/usr/sbin/sendmail -bs',
'markdown' => [
'theme' => 'default',
'paths' => [
resource_path('views/vendor/mail'),
],
],Пробовал driver ставить и log и mail, MAIL_PRETEND=true, APP_DEBUG=true ... нигде не пишутся логи с ошибками по почте или я не могу найти.
Какие-то настройка postfix или еще чего нужно показать?
Не в сети
С отдельного файла с функцией mail() тоже отправляется.
ну и поставь тогда MAIL_DRIVER=mail и отправляй локально а не через gmail
Не в сети
в том-то и дело, что я ставил и он не отправляет. может кто-то еще даст варианты настроек других полей когда MAIL_DRIVER=mail. Но пробовал некоторые варианты.
Не в сети
Пробовал driver ставить и log
Если при driver=log почта не пишется в логи - вероятно vendor файлы повреждены.
Удали папку vendor и выполни composer install.
Не в сети
Пробовал. Результат тот же.
Он же должен писать в storage\logs\laravel.log ?
Не в сети
лично я (нубас) делал все по видео уроку https://youtu.be/zu-ZniGhogw и все прекрасно работает.
.env
MAIL_DRIVER=smtp
MAIL_HOST=mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=2cb975f571cd30
MAIL_PASSWORD=2e5cd5d03b5b30
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS=test@yandex.ru
MAIL_FROM_NAME="test app"mail.php
'driver' => env('MAIL_DRIVER', 'smtp'),
'host' => env('MAIL_HOST', 'smtp.mailgun.org'),
'port' => env('MAIL_PORT', 587),
'from' => [
'address' => env('MAIL_FROM_ADDRESS', 'hello@example.com'),
'name' => env('MAIL_FROM_NAME', 'Example'),
],
'encryption' => env('MAIL_ENCRYPTION', 'tls'),
'username' => env('MAIL_USERNAME'),
'password' => env('MAIL_PASSWORD'),
'sendmail' => '/usr/sbin/sendmail -bs',
'markdown' => [
'theme' => 'default',
'paths' => [
resource_path('views/vendor/mail'),
],
],возможно еще какието гдето настройки нужны. сечас уже плохо помню, посмотри видео, там все просто даже для новичка
ну и вот функция отправки
// Send Email
private function send_email($test, $msg)
{
$user = User::findOrFail(2); // Письмо отправляется пользователю ID 2
if ($user) {
$params = [
'user' => $user,
'test' => $test,
'msg' => $msg,
];
Mail::send('emails.user.email_send', $params, function ($m) use ($user) { // юзаю шаблон, передаю параметры, выполняю функцию
$m->from('hello@app.com', 'Your Application');
$m->to($user->email, $user->name)->subject('Тема сообщения:');
});
return json_encode(['success' => TRUE, 'data' => 'ok']);
} else {
return json_encode(['success' => FALSE, 'data' => 'false']);
}
}так же рекомендую вам 100 видео уроков по ларавелю https://laravel.ru/forum/viewtopic.php?id=2799 ![]()
Изменено sam (25.08.2017 15:39:54)
Не в сети
Он же должен писать в storage\logs\laravel.log ?
Да.
По поводу проблемы - ничего сказать не могу, это странно, что даже не пишет в логи.
Не в сети
По уроку, что скинул sam, создал отдельный проект на laravel. Письмо отправляется и пишется в лог.
То есть проблема с самим сайтом. Напоминаю, что я переношу чужой сайт на другой хостинг и домен.
Может будут теперь какие-то мысли, что может не так перенес, скомпилировал, настроил. Или как тут отловить эту ошибку.
Не в сети
Страницы 1