Jedes Mal, wenn ich das Kontaktformular in meiner Anwendung Laravel absende, erhalte ich die Fehlermeldung im Titel. Ich habe die Empfehlung in diese Diskussion befolgt, aber sie hat auch nach php artisan cache:clear
und php artisan config:cache
keine Auswirkung. Hier ist der entsprechende Code:
.env
MAIL_DRIVER=smtp
MAIL_Host=smtp.gmail.com
MAIL_PORT=587
[email protected]
MAIL_PASSWORD=password
MAIL_ENCRYPTION=ssl
config/mail.php
<?php
return [
'driver' => env('MAIL_DRIVER', 'smtp'),
'Host' => env('MAIL_Host', 'smtp.gmail.org'),
'port' => env('MAIL_PORT', 587),
'from' => [
'address' => env('MAIL_FROM_ADDRESS', '[email protected]'),
'name' => env('MAIL_FROM_NAME', 'Example'),
],
'encryption' => env('MAIL_ENCRYPTION', 'tls'),
'username' => env('MAIL_USERNAME'),
'password' => env('MAIL_PASSWORD'),
'sendmail' => '/usr/sbin/sendmail -bs',
'markdown' => [
'theme' => 'default',
'paths' => [
resource_path('views/vendor/mail'),
],
],
];
Ich hatte den Eindruck, dass die globale "Von" nicht schießen würde, wenn keine andere Adresse angegeben wurde, aber in meinem E-Mail-Controller habe ich die Adresse angegeben, die im Kontaktformular als "Von" angegeben ist das ein Konflikt irgendwie? Es scheint nicht aus den Details der Fehlermeldung zu stammen.
Da es sich bei dem Kontaktformular nicht um eine eigene Ansicht, sondern um die Unterseite der Hauptseite handelt, befindet sich die Controller-Funktion in PageController.
public function postContact(Request $request) {
$this->validate($request, [
'email' => 'required|email',
'subject' => 'required|min:3',
'message' => 'required|min:10'
]);
$data = array(
'email' => $request->email,
'subject' => $request->subject,
'mailbody' => $request->message
);
Mail::send('emails.contact', $data, function($message) use ($data) {
$message->from($data['email']);
$message->to('[email protected]');
$message->subject($data['subject']);
});
}
Ich denke, Sie sollten den Mail-Absender (MAIL_FROM_ADDRESS
) als Ihre Google Mail-Adresse definieren, mit der Sie E-Mails senden möchten.
wenn Ihr MAIL_USERNAME
unter .env
beispielsweise [email protected] ist, sollten Sie Ihren MAIL_FROM_ADDRESS
(oder natürlich $mail->from()
) als [email protected] definieren.
Ich glaube nicht, dass Sie mit gmail E-Mails als anderen Benutzer versenden können (eine andere Adresse).
Ähnliches Problem 587-Port
MAIL_DRIVER=smtp
MAIL_Host=smtp.gmail.com
MAIL_PORT=587
[email protected]
MAIL_PASSWORD=mypassword
Ich habe den gleichen Fehler erhalten. Es funktioniert einwandfrei, als ich EMAIL_ENCRYPTION geändert habe. Es war 'encryption' => env('MAIL_ENCRYPTION', 'tps'),
, bevor ich es in 'encryption' => env('MAIL_ENCRYPTION', ''),
änderte.
MAIL_DRIVER=smtp
MAIL_Host=smtp.gmail.com
MAIL_PORT=465
[email protected]
MAIL_PASSWORD=secreat
MAIL_ENCRYPTION=ssl
Aktualisieren Sie den obigen Code in Ihrer .env-Datei und führen Sie dann diese Befehle im Terminal aus
composer dump-autoload
php artisan serve