Laravel Homestead Swift Не может отправлять сообщения без адреса отправителя


Я получаю эту ошибку с настройками стандартной электронной почты в Laravel 5.1 Homestead, когда пытаюсь отправить письмо со сброшенным паролем.

Swift_TransportException in AbstractSmtpTransport.php line 162:Cannot send message without a sender address

Адрес заполнен app/config/mail.php :

'from' => array('address' => '[email protected]', 'name' => 'hawle'),
Author: Gergely Havlicsek, 2015-08-07

4 answers

В вашем файле .env вам нужно будет указать адрес электронной почты и пароль вашей учетной записи электронной почты. Вам также необходимо указать хост и порт почтового сервера, который вы используете.

MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=25
MAIL_USERNAME= ***USER NAME***
MAIL_PASSWORD= ***PASSWORD***
MAIL_ENCRYPTION=tls

Или убедитесь, что в вашем файле mail.php все заполнено (см. Примечание ниже).

'host' => env('MAIL_HOST', 'smtp.gmail.com'),
/*
|--------------------------------------------------------------------------
| SMTP Host Port
|--------------------------------------------------------------------------
|
| This is the SMTP port used by your application to deliver e-mails to
| users of the application. Like the host we have set this value to
| stay compatible with the Mailgun e-mail application by default.
|
*/
'port' => env('MAIL_PORT', 25),
/*
|--------------------------------------------------------------------------
| Global "From" Address
|--------------------------------------------------------------------------
|
| You may wish for all e-mails sent by your application to be sent from
| the same address. Here, you may specify a name and address that is
| used globally for all e-mails that are sent by your application.
|
*/
'from' => ['address' => '[email protected]', 'name' => 'hawle'],
/*
|--------------------------------------------------------------------------
| E-Mail Encryption Protocol
|--------------------------------------------------------------------------
|
| Here you may specify the encryption protocol that should be used when
| the application send e-mail messages. A sensible default using the
| transport layer security protocol should provide great security.
|
*/
'encryption' => env('MAIL_ENCRYPTION', 'tls'),

Примечание: Лучше использовать файл .env, так как у вас, скорее всего, будет другая конфигурация в вашей производственной среде.

Если все завершено и все еще не работает, возможно, это кэширование. Вы можете очистить кэш конфигурации с помощью этого:

php artisan config:cache

Также обратите внимание:

  • Порт 465 предназначен для Gmail. Если это не сработает, вы можете использовать 25.
  • Файл mail.php находится по адресу /app/config/mail.php (как сказал ОП).
  • Файл .env расположен в корне вашего проекта.
  • Mailtrap.io это сервис для тестирования SMTP. На самом деле он не отправляет электронные письма.

Как упоминал Виктор Минер: Примите во внимание создание паролей приложений и отказ от использования вашего обычного пропуска для этих целей. Ссылка для создания паролей myaccount.google.com/apppasswords

 35
Author: Szenis, 2017-07-05 09:28:10

Убедитесь, что вы установили "от" в app/config/mail.php

'from' => ['address' => '[email protected]', 'name' => 'myname']

Это устранит проблему.

 14
Author: Ali, 2015-11-07 10:22:00

Если у вас нет доступа к файлу .env, вы можете добавить значения по умолчанию к этим вызовам env app/config/mail.php , вот так:

    'from' =>  ['address' => env('MAIL_FROM_EMAIL','[email protected]'), 'name' => env('MAIL_FROM_NAME','SpongeBob')],

Этот подход попытается получить данные из файла .env, если там ничего нет, по умолчанию будет установлено все, что вы установили.

 2
Author: Cristian Cordeiro, 2017-01-10 22:02:22

Файл:/bootstrap/cache/config.php
Изменение:

'mail' => array(
            'driver' => 'smtp',
            'host' => 'mail.yourserversiteemail.com',
            'port' => '25',
            'from' =>
            array(
                'address' => '[email protected]',
                'name' => 'sd',
            ),
            'encryption' => 'tls',
            'username' => 'yourUsername',
            'password' => 'yourPass',
            'sendmail' => '/usr/sbin/sendmail -bs',
 -1
Author: Ali Najafi, 2017-10-29 23:30:58