J'essaie d'envoyer un e-mail à un utilisateur spécifié en tapant l'URL, mais j'obtiens l'erreur suivante:
Swift_TransportException dans AbstractSmtpTransport.php ligne 383: Code de réponse attendu 250 mais code "530", avec le message "530 5.7.1 Authentification requise
Jusqu'à présent, j'essaie simplement de le faire fonctionner avec Gmail. Comment puis-je faire fonctionner cela?
Voici ce que j'ai jusqu'à présent: mail.php
<?php
return [
'driver' => env('MAIL_DRIVER',' smtp'),
'host' => env('MAIL_HOST', 'smtp.gmail.com'),
'port' => env('MAIL_PORT', 587),
'from' => ['address' =>"[email protected]" , 'name' => "example"],
'encryption' => 'tls',
'username' => env('[email protected]'),
'password' => env('MyPassword'),
'sendmail' => '/usr/sbin/sendmail -bs',
'pretend' => false,
];
Voici ce que j'ai dans les itinéraires:
Route::get('test', function() {
Mail::send('Email.test', [], function ($message) {
$message->to('[email protected]', 'HisName')->subject('Welcome!');
});
});
Voici ce que j'ai dans mon contrôleur:
class MailController extends Controller
{
public function Sending_Email()
{
$this->call('GET','Email.test');
return View('Email.test');
}
}
Et voici ce que contient mon fichier .env:
MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=MyUsername@gmail.com
MAIL_PASSWORD=MyPassword
php
laravel
laravel-5
email-integration
Vantheman6
la source
la source
Réponses:
Je sais que cela fonctionne pour vous maintenant @ Vantheman6 mais c'est ce qui a fonctionné pour moi au cas où ce serait la même chose pour quelqu'un d'autre.
J'ai ajouté à mon fichier .env les détails du service de messagerie que j'utilise. Assurez-vous donc que les détails suivants
dans le fichier .env sont exacts.
REMARQUE: n'oubliez pas de redémarrer votre serveur après avoir modifié le fichier .env afin qu'il sélectionne les nouvelles données que vous y mettez.
Si vous ne redémarrez pas votre serveur, le fichier .env continuera à présenter les anciennes données de messagerie à l'application même si vous avez apporté des modifications qui peuvent provoquer cette erreur.
la source
php artisan config:cache
le redémarrage du serveur ne récupérera pas la configuration mise à jour. Essayez àphp artisan config:cache
nouveau de courirMa configuration de fichier .env est comme ça pour laravel 5.1
ici, la chose la plus importante est que j'ai créé un mot de passe spécifique à l'application gmail (16 chiffres).
J'ai besoin de révéler une dernière chose car aucune chance pour aucune configuration. Autrement dit, chaque fois que j'ai changé le fichier .env, j'ai besoin d'exécuter cette commande
Et c'est le plus important car sans cette commande, laravel exécute les paramètres précédents à partir de son cache. Il m'a fallu plus de 10 heures pour comprendre.
la source
php artisan cache:clear
quandphp artisan config:cache
est ce qui l'a résolu pour moi. Je vous remercie!php artisan config:cache
Vous obtenez une erreur d'authentification car le nom d'utilisateur et le mot de passe de votre fichier de configuration sont mal configurés.
Change ça:
Pour ça:
La
env
méthode vérifie votre fichier .env. Dans votre fichier .env, vous les appelezMAIL_USERNAME
, c'est donc ce que vous devez transmettre à laenv
méthode.Un conseil de dépannage: ajoutez
dd(Config::get('mail'));
afin que vous puissiez voir la configuration réelle générée . Cela vous aidera à repérer des problèmes comme celui-ci et à savoir exactement quelles informations Laravel va essayer d'utiliser. Vous voudrez peut-être arrêter cela temporairement dans votre itinéraire de test pour examiner ce que vous avez:la source
'password' => env('MAIL_PASSWORD'),
je trouve intéressant parce que partout me dit d'entrer votre adresse e-mail et votre mot de passe pour cela. J'obtiens toujours une erreurSwift_TransportException in AbstractSmtpTransport.php line 383: Expected response code 250 but got code "530", with message "530 5.7.1 Authentication required. I'm sorry but where do i actually place the "
dd(Config::get('mail'));
. le répertoire Config contient beaucoup de fichiers'host' => env('MAIL_HOST', 'smtp.gmail.com'),
MAIL_HOST
dans votre fichierMAIL_HOST=smtp.gmail.com
Donc, ce que j'ai fini par faire a été de supprimer tous les env de chaque partie du fichier mail.php. Et maintenant, les informations correctes passent. OMG Merci, cela a fonctionné. Vous êtes l'hommele problème sera résolu en effaçant le cache
la source
Enfin j'ai! Juste pour partager, il y a plus de config que juste .env
C'est .env
config / mail.php doit également entrer l'adresse et le nom pour que cela fonctionne.
la source
Si jamais vous rencontrez le même problème et essayez tout en ligne et que cela ne fonctionne pas, c'est probablement le fichier de cache de configuration qui envoie les mauvaises informations. Vous pouvez le trouver dans bootstrap / cache / config.php. Assurez-vous que les informations d'identification sont bien là. Il m'a fallu une semaine pour comprendre cela. J'espère que cela aidera quelqu'un un jour.
la source
À des fins de développement, https://mailtrap.io/ vous fournit tous les paramètres qui doivent être ajoutés dans le fichier .env. Par exemple:
Sinon, à des fins de mise en œuvre, vous pouvez obtenir les informations d'identification smtp à ajouter dans le fichier .env à partir du courrier (comme gmail n all)
Après l'ajout, assurez-vous de redémarrer le serveur
la source
Cela m'arrive aussi.
Si cela ne fonctionne toujours pas, essayez de faire
php artisan config:cache
la source
Pour référence future aux personnes qui viennent ici. après avoir exécuté la commande qui a été donnée dans la troisième réponse ici ( j'utilise maintenant Laravel 5.3 ).
Vous pouvez rencontrer ce problème:
Dans ce cas, vous devez le rajouter manuellement à votre liste de fournisseurs sous le fichier app.php. GO-TO:
app->config->app.php->'providers[]'
et ajoutez-le, comme ceci:J'espère que cela aide quelqu'un.
la source
J'ai eu le même problème; mon
MAIL_ENCRYPTION
étaittls
surmail.php
mais c'était dansnull
le.env
dossier.Donc , je l' ai changé
null
pourtls
et cela a fonctionné!la source
Aucune des solutions ci-dessus n'a fonctionné pour moi sur localhost. J'ai même autorisé l'accès à partir d'applications moins sécurisées, autorisé l'accès via le captcha de déverrouillage de l'écran et défini le pair de vérification et le nom du pair de vérification sur false pour SSL.
Finalement, j'ai utilisé la solution de test SMTP open source de MailHog. Les étapes sont les suivantes:
la source
Cela signifie simplement que votre serveur n'a pas accès au serveur SMTP.
Vous pouvez tester cela en faisant:
Vous devriez obtenir l'erreur Accès refusé.
La solution consiste simplement à utiliser un autre serveur SMTP accessible par votre serveur.
la source
Vous devez redémarrer le serveur et exécuter ces commandes:
Cela devrait fonctionner.
la source
Si vos résultats de
dd(Config::get('mail'));
sont nuls, utilisez simplement la commandela source
Mon opinion après avoir apporté des modifications à vos fichiers .env, redémarrez votre serveur et servez à nouveau l'application. Juste pour être sûr de l'erreur réelle. L'artisan php d'effacement et de cache fonctionne ensuite très bien.
la source
J'ai eu le même problème que toi, je viens de le faire fonctionner.
Tout d'abord, vous devez vérifier que les paramètres .env sont correctement configurés. Voici mes paramètres:
Veuillez vous assurer que votre mot de passe n'est pas entre guillemets :).
Et dans config / mail.php, il contient les éléments suivants, sans les commentaires.
J'espère que ça marche pour toi :)
la source
Dans mon cas: redémarrez le serveur et exécutez la
php artisan config:clear
commande.la source
la source