it-swarm.com.de

Laravel Homestead Swift Nachricht kann ohne Absenderadresse nicht gesendet werden

Ich erhalte diesen Fehler mit den Standard-E-Mail-Einstellungen in Laravel 5.1 Homestead, wenn ich versuche, eine E-Mail zum Zurücksetzen des Kennworts zu senden. 

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

Die Adresse wird in app/config/mail.php eingetragen: 

'from' => array('address' => '[email protected]', 'name' => 'hawle'),
19

In Ihrer .env-Datei müssen Sie die E-Mail-Adresse und das Passwort Ihres E-Mail-Kontos festlegen. Sie müssen auch den Host und den Port des verwendeten Mail-Servers einstellen.

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

Oder stellen Sie sicher, dass alles in Ihrer mail.php-Datei vollständig ist (siehe Hinweis unten). 

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

Hinweis: Es ist besser, die .env-Datei zu verwenden, da in Ihrer Produktionsumgebung höchstwahrscheinlich eine andere Konfiguration vorgenommen wird.

Wenn alles abgeschlossen ist und immer noch nicht funktioniert, kann es sich um eine Zwischenspeicherung handeln. Sie können den Konfigurations-Cache damit löschen:

php artisan config:cache

Beachten Sie auch: 

  • Port 465 ist für Gmail. Wenn es nicht funktioniert, können Sie 25 verwenden. 
  • Die mail.php-Datei befindet sich unter /app/config/mail.php (wie OP gesagt). 
  • Die .env-Datei befindet sich im Stammverzeichnis Ihres Projekts. 
  • Mailtrap.io ist ein Dienst zum Testen von SMTP. E-Mails werden nicht wirklich gesendet. 

Wie Viktorminator erwähnt:Erwägen Sie das Erstellen von App-Passwörtern und verwenden Sie dafür nicht den üblichen Pass. Link zum Erstellen von Passwörtern myaccount.google.com/apppasswords 

36
Szenis

Vergewissern Sie sich, dass Sie in app/config/mail.php "von" festgelegt haben

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

Es wird das Problem beheben.

15
Ali

Wenn Sie keinen Zugriff auf die .env-Datei haben, können Sie diesen env-Aufrufen in app/config/mail.php folgende Standardwerte hinzufügen:

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

Bei diesem Ansatz wird versucht, die Daten aus der .env-Datei abzurufen. Wenn nichts vorhanden ist, werden standardmäßig alle Einstellungen übernommen.

2

fehler war immer noch aufgetreten. nach Einstellungen und Ausführen von Befehlen

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

Überprüfen Sie den Code

\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!');
...
0
felisleo119