web-dev-qa-db-fra.com

laravel Code de réponse attendu 250 mais obtenu le code "530"

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.

4
mendz

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.

13
Winston Fale

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é.

17
Amarja

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.

1
Hassan Azimi

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.

0
Meysam

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

0
m.y.m