Wie konfiguriere ich Laravel mail.php für die Verwendung der integrierten Mail-Funktion?

Lesezeit: 3 Minuten

Olegs Benutzeravatar
Oleg

Ich muss eine E-Mail über senden mail() PHP-Funktion. Ich habe irgendwo gelesen, dass ich wechseln muss driver Parameter in config/mail.php Zu sendmail.

Standardmäßig sieht es so aus:

'driver' => env('MAIL_DRIVER', 'smtp'),

Nun sieht es so aus:

'driver' => 'sendmail',

Habe auch Folgendes probiert:

'driver' => 'mail',

Aber trotzdem, die mail() Funktion funktioniert nicht. Was muss ich ändern?

Benutzeravatar von Max Oriola
Max Oriola

Um dasselbe wie die PHP-Funktion mail() zu tun, sollten Sie Laravel in den meisten Fällen wie folgt konfigurieren:

Verwenden Sie sendmail unter .env:

MAIL_DRIVER=sendmail

Wenn Sie Larvel 7 oder höher verwenden

MAIL_MAILER=sendmail

Laravel 7 ersetzt MAIL_DRIVER von MAIL_MAILER

Host, Benutzer, Passwort, Port und Verschlüsselung sind nicht erforderlich.

An dieser Stelle können Sie prüfen, ob es bereits funktioniert, aber manchmal ist auch der nächste Schritt erforderlich.

Legen Sie eine neue .env-Option in config/mail.php fest:

'sendmail' => env('MAIL_SENDMAIL', '/usr/sbin/sendmail -bs')

Legen Sie den Sendmail-Pfad in .env fest. Du kannst nachschauen sendmail_path bei phpinfo(), aber normalerweise ist es dieses hier:

MAIL_SENDMAIL='/usr/sbin/sendmail -t -i'

  • Das hier ist die richtige Antwort. Besonders dieser Leckerbissen bezüglich der Einstellung der Optionen auf „sendmail -t -i“ in meinem Fall. Ich hasse es, diese grundlegende PHP-Mail-Funktion verwenden zu müssen, aber in einem meiner Projekte bin ich dazu gezwungen … Danke.

    – Chris

    13. März 2018 um 19:36 Uhr

  • muss sein 'sendmail' => env('MAIL_SENDMAIL', '/usr/sbin/sendmail -bs'), In config/mail.php wenn Sie es dort bearbeiten möchten. Vergessen Sie nicht die Anführungszeichen und das Schlusskomma

    – Chris

    13. März 2018 um 20:53

  • Notiere dass der sendmailDer Treiber erfordert PHP proc_open() Die Funktion ist aus Sicherheitsgründen nicht deaktiviert disabled_functions in ´php.ini`.

    – Christopher K.

    25. Okt. 2018 um 19:06 Uhr


  • Für Laravel 7 und höher verwenden Sie MAIL_MAILER=sendmail

    – Erin

    25. März 2021 um 11:14 Uhr

  • Hat jemand eine Lösung für die Verwendung von sendmail auf Windows-Rechnern?

    – SiL3NC3

    23. Februar 2022 um 8:03

Ikbels Benutzeravatar
Ikbel

Zur Nutzung des laufenden E-Mail-Servers localhostdein .env Datei sollte so aussehen (Die PHP mail Funktion benötigt weder einen Benutzernamen noch ein Passwort)

MAIL_DRIVER=smtp
MAIL_HOST=localhost
MAIL_PORT=25
MAIL_USERNAME=
MAIL_PASSWORD=
MAIL_ENCRYPTION=null

Aktualisieren Sie dann den Konfigurationscache:

php artisan config:cache

  • Vielen, vielen Dank, Freund!!! Ich habe so lange nach dieser Antwort gesucht und das ist schlecht, dass die offizielle Laravel-Dokumentation diese Informationen nicht enthält. Du bist der Beste, @lbel!

    – Vaha

    2. März 2018 um 8:54

  • Vielen Dank, genau wie @Vaha, ich konnte das nirgends finden. Ich habe stundenlang gesucht und nirgendwo steht, dass man es so verwenden soll.

    – Stefan Teunissen

    30. Dezember 2018 um 13:46 Uhr

  • Der php artisan config:cache-Teil ist wichtig, vergessen Sie ihn nicht wie ich!

    – AdamJones

    10. September 2019 um 13:36 Uhr

  • php artisan config:clear ist meiner Meinung nach der eigentliche Befehl, der ausgeführt werden sollte

    – Arvind K.

    11. Okt. 2019 um 6:20 Uhr

  • Für einen Localhost können Sie einfach so einrichten MAIL_DRIVER=log und es werden alle E-Mails in der Protokolldatei gedruckt. Sehr hilfreich!

    – Mārcis P

    22. März 2020 um 22:35 Uhr

Sie müssen Ihre E-Mail-Konfiguration in der .env-Datei festlegen. Hier müssen Sie Ihren gesamten Mail-Treiber und alle Details einstellen. Bitte sehen Sie sich diese Dokumentation an https://laravel.com/docs/5.0/mail

  • Der von Ihnen gepostete Link erklärt, wie man eine Reihe von API-Treibern konfiguriert, erklärt jedoch nicht, wie man sendmail konfiguriert, was wahrscheinlich der Grund ist, warum OP diese Frage gepostet hat.

    – Hayden Bech

    8. Dezember 2018 um 1:14

Benutzeravatar von AddWeb Solution Pvt Ltd
AddWeb Solution Pvt Ltd

Sie können Ihre E-Mail-Konfiguration festlegen .env Datei wie

MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=youremail@gmail.com
MAIL_PASSWORD="password"
MAIL_ENCRYPTION=tls

Legen Sie auch die Konfiguration in config/mail.php fest, z. B.:

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

Dann können Sie den Cache leeren:

php artisan config:cache
php artisan cache:clear

1452200cookie-checkWie konfiguriere ich Laravel mail.php für die Verwendung der integrierten Mail-Funktion?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy