sendmail 504 Тайм-аут шлюза на ферме laravel

Я кодировал веб-приложение, используя инфраструктуру lumen для Windows с xampp, но после нескольких проблем с маршрутизацией и так далее, я решил попробовать homestead и vagrant.

Мне удалось установить усадьбу, и маршрутизация работает лучше, чем xampp, но когда я попытался использовать функцию почты из php, я обнаружил, что команда sendmail не была установлена ​​на виртуальной машине усадьбы, потому что я получаю 500 внутренняя ошибка сервера, и с отправкой электронной почты xampp все работало нормально. Так что с shh я сделал простой sudo apt-get install sendmail, чтобы установить его. Но теперь, когда я пытаюсь использовать почтовую функцию из php, она просто ждет и ждет, и в конце концов я получаю 504 Gateway Time-out.

Что может происходить и что я могу сделать, чтобы решить эту проблему?

Кстати: если у вас есть какие-либо предложения по замене простой почтовой функции чем-то другим, работающим, я готов попробовать!

Спасибо, ребята, за ваше время.

Это мой файл .env

APP_ENV=local
APP_DEBUG=true
APP_KEY=SomeRandomKey!!!

APP_LOCALE=en
APP_FALLBACK_LOCALE=en

DB_CONNECTION=sqlite
DB_FILE=database.sqlite
DB_DATABASE='storage/database.sqlite'
DB_DRIVER=sqlite

CACHE_DRIVER=memcached
SESSION_DRIVER=memcached
QUEUE_DRIVER=database

MAIL_DRIVER=smtp
MAIL_HOST=mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=[mailtrap_username]
MAIL_PASSWORD=[mailtrap_password]
[email protected]
MAIL_FROM_NAME=Example

person envy    schedule 30.07.2015    source источник


Ответы (2)


Лично мне при разработке нравится использовать драйвер log. Это записывает все отправленные электронные письма в файл журнала storage/logs/. Я нахожу это более удобным, так как полностью гарантирует, что при тестировании не будет случайно отправлено письмо.

Если вы действительно хотите отправлять почту, я бы предложил mailgun, он бесплатный для 10 000 писем каждый месяц, и я использую его для каждого приложения, которое я создал на работе. Супер быстро и удобно, также включает в себя отслеживание, подтверждение доставки и т. д.

После того, как вы зарегистрируетесь, вы захотите настроить новый домен, который даст вам несколько учетных данных, которые вам нужно будет добавить к вашему config/services.php, это ваш домен и ключ API.

Затем вам нужно будет установить guzzle для вашего приложения (это необходимо, поскольку mailgun использует HTTP API для отправки электронной почты, что намного быстрее, чем SMTP и традиционные варианты почтового транспорта).

composer require "guzzlehttp/guzzle": "~5.3|~6.0"

Последнее, что нужно сделать, это установить почтовый драйвер на mailgun, и вы должны быть в пути.

Редактировать: просмотр файлов конфигурации laravel/lumen-framework не выглядит возможным, чтобы иметь возможность предоставить соответствующую информацию, чтобы иметь возможность использовать mailgun или любую службу, которая требует информацию из файла конфигурации services.php, поскольку это не включено в просвет по какой-то причине.

https://github.com/laravel/lumen-framework/tree/5.1/config

person Wader    schedule 30.07.2015
comment
Я попробую сегодня вечером, как только приеду домой, у вас есть какой-нибудь учебник, чтобы заставить мейлган работать на люмен? Спасибо! - person envy; 30.07.2015
comment
Отредактировал мой ответ, к сожалению, это невозможно из коробки. Я уверен, что вы, вероятно, могли бы взломать интерфейс конфигурации, чтобы что-то заработало. - person Wader; 31.07.2015

Почему бы не попробовать http://mailtrap.io? Это бесплатный и простой SMTP-сервер для отправки электронных писем с PHP, который пойман в их простом веб-интерфейсе.

Это действительно хорошо для тестирования отправки электронной почты локально, поскольку оно будет перехватывать электронные письма, чтобы вы могли просматривать их на досуге.

В качестве бонуса: Laravel 5 теперь включает почтовую ловушку в качестве настроек SMTP по умолчанию, позволяя вам просто указать имя пользователя и пароль :)

person Jamesking56    schedule 30.07.2015
comment
Это то, что я использовал до сих пор! У меня есть учетная запись mailtrap, и с xampp все работало нормально, но когда я переключился на homestead, используя тот же код, он просто перестал работать с ошибкой тайм-аута. - person envy; 30.07.2015
comment
Что находится в вашем файле env? - person Jamesking56; 31.07.2015
comment
Я только что отредактировал свой вопрос с файлом .env, он точно такой же, как у меня при настройке xampp, поэтому я предполагаю, что виртуальная машина на бродяге не работает должным образом. - person envy; 31.07.2015