J'essaye d'envoyer un mail à Laravel 5.1
mon code mail.php est
return [
'driver' => env('MAIL_DRIVER', 'smtp'),
'Host' => env('MAIL_Host', 'smtp.mailgun.org'),
'port' => env('MAIL_PORT', 587),
'from' => ['address' => '[email protected]', 'name' => 'sample'],
'encryption' => env('MAIL_ENCRYPTION', 'tls'),
'username' => env('MAIL_USERNAME'),
'password' => env('MAIL_PASSWORD'),
'sendmail' => '/usr/sbin/sendmail -bs',
'pretend' => env('MAIL_PRETEND', false),
];
mon fichier .env est
MAIL_DRIVER=smtp
MAIL_Host=smtp.gmail.com
MAIL_PORT=587
[email protected]
MAIL_PASSWORD=mypassword
MAIL_ENCRYPTION=null
ma fonction d'email est
public function sendEmailVerification()
{
$user = $this->user;//retrieved by $request->user() in __construct
Mail::send('emails.verifyemail', ['user' => $user], function ($m) use ($user) {
$m->from('[email protected], 'sample');
$m->to($user->email, $user->name)->subject('Verify Email');
});
}
Le code de réponse attendu 250 mais le code "530", avec le message "530 5.7.0 Doit d'abord émettre une commande STARTTLS. Une erreur l188sm21749863pfl.28 - gsmtp" apparaît chaque fois que j'appelle ma fonction.
vous devez activer votre vérification en 2 étapes à partir d'un compte gmail.
https://myaccount.google.com/security
utilisez ensuite la clé générée à partir de là pour votre ENV_PASSWORD à la place de votre vrai mot de passe.
J'ai eu le même problème. J'ai changé,
MAIL_ENCRYPTION=null to
MAIL_ENCRYPTION=tls
php artisan config:cache
et cela a fonctionné.
Utilisez SSL
et le port 465
comme ceci:
MAIL_DRIVER=smtp
MAIL_Host=smtp.gmail.com
MAIL_PORT=465
[email protected]
MAIL_PASSWORD=12345678
MAIL_ENCRYPTION=ssl
100% fonctionnera.
remplacez votre MAIL_ENCRYPTION = null par MAIL_ENCRYPTION = ssl ou MAIL_ENCRYPTION = tls. J'avais ce problème auparavant et je passais à MAIL_ENCRYPTION = tls fonctionnait pour moi. Assurez-vous également que vos paramètres de messagerie dans config\mail.php sont identiques à ceux du fichier .env.
Après avoir activé la connexion au courrier à partir des périphériques moins sécurisés, assurez-vous que le fichier .env
contient les configurations suivantes:
MAIL_DRIVER=smtp
MAIL_Host=smtp.gmail.com
MAIL_PORT=587
[email protected]
MAIL_PASSWORD="your_passwrod_here"
MAIL_ENCRYPTION=tls
Assurez-vous que votre mot de passe est arrondi par les guillemets ""
.
Assurez-vous que votre fichier mail.php
contient les configurations suivantes:
'from' => [
'address' => env('MAIL_FROM_ADDRESS', '[email protected]'),
'name' => env('MAIL_FROM_NAME', 'your_email'),
],
'encryption' => env('MAIL_ENCRYPTION', 'tls'),
Et n'oubliez pas de fermer le serveur et d'exécuter php artisan config:clear
pour effacer le cache de configuration.
Cela a fonctionné pour moi