Подтвердить что ты не робот

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

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

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'),
4b9b3361

Ответ 1

В вашем файле .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 (как сказал OP).
  • Файл .env расположен в корне вашего проекта.
  • Mailtrap.io - это сервис для тестирования SMTP. Он действительно не отправляет электронные письма.

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

Ответ 2

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

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

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

Ответ 3

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

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

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

Ответ 4

ошибка все еще произошла после настроек и запуска команд

php artisan view:clear;
php artisan config:cache;
php artisan cache:clear;
php artisan route:cache;

проверьте код

\Illuminate\Support\Facades\Mail::send('layouts.mail', [ 'content' => 'testmail'],    function ($m) use ($msg2){
$m->from('[email protected]', 'ABC'); 
// this line was env('MAIL_FROM_ADDRESS') ; cant read from .env
$m->to('[email protected]', 'XYZ')->subject('TestMailSubject!');
...

Ответ 5

Файл:/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',