Essayer d'obtenir Laravel 5 e-mail à travailler
Je suis en train d'envoyer un email à un utilisateur spécifié par taper dans l'URL, mais j'obtiens l'erreur suivante:
Swift_TransportException dans AbstractSmtpTransport.php ligne 383:
Réponse attendue code 250 mais j'ai reçu un code "530", avec le message "530 5.7.1
Authentification requise
Jusqu'à présent, je suis juste essayer d'obtenir qu'il fonctionne avec Gmail. Comment puis-je obtenir que cela fonctionne?
C'est ce que j'ai à ce jour: 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,
];
C'est ce que j'ai dans les routes:
Route::get('test', function() {
Mail::send('Email.test', [], function ($message) {
$message->to('[email protected]', 'HisName')->subject('Welcome!');
});
});
C'est ce que j'ai dans mon controller:
class MailController extends Controller
{
public function Sending_Email()
{
$this->call('GET','Email.test');
return View('Email.test');
}
}
Et c'est ce qui est dans mon .fichier env:
MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=MyUsername@gmail.com
MAIL_PASSWORD=MyPassword
- Utilisation mailtrap.io pour pour les tests
- Astuce sympa sur mailtrap.io @roll
- J'ai exactement le même message d'erreur lors de l'utilisation de mailtrap.io
Vous devez vous connecter pour publier un commentaire.
Je sais que c'est de travailler pour vous maintenant @Vantheman6 mais c'est ce qui a fonctionné pour moi dans le cas où c'est la même chose pour quelqu'un d'autre.
J'ai ajouté à mon .env fichier les détails du service de messagerie que j'utilise. Donc, assurez-vous que les détails suivants
dans le .fichier env sont exacts.
REMARQUE: N'oubliez pas de redémarrer votre serveur après l'édition de l' .fichier de configuration afin qu'il reconnaisse les nouvelles données que vous avez mis là-dedans.
Si vous n'avez pas de redémarrer votre serveur, l' .fichier env va encore continuer à présenter le vieux-mail les données à l'application, même si vous avez apporté des modifications qui peuvent provoquer cette erreur.
php artisan config:cache
puis en redémarrant le serveur ne sera pas ramasser la mise à jour de la configuration. Essayez d'exécuterphp artisan config:cache
de nouveauFatalErrorException in HandleExceptions.php line 56: Maximum execution time of 30 seconds exceeded
Mon .env fichier de configuration est comme ça, pour laravel 5.1
ici le plus important, c'est que j'ai créé gmail mot de passe spécifique à l'application(16 chiffres).
J'ai besoin de révéler une chose de plus depuis pas de chance pour tout de configuration. C'est, à chaque fois que j'ai changé .fichier de configuration nécessaire pour exécuter cette commande
Et ce n'est plus le plus important, parce que sans cette commande laravel exécute les paramètres précédents dans son cache. Il m'a obligé plus de 10 heures pour comprendre.
php artisan cache:clear
quandphp artisan config:cache
est ce que résolu pour moi. Merci!!!!php artisan config:cache
Vous obtenez une erreur d'authentification, car le nom d'utilisateur et le mot de passe dans votre fichier de configuration est la configuration de mal.
Changer cela:
À ceci:
La
env
méthode vérifie votre .fichier env. Dans votre .fichier env vous appelez cesMAIL_USERNAME
, c'est ce que vous avez besoin pour passer à l'env
méthode.Une astuce de dépannage: ajouter
dd(Config::get('mail'));
de sorte que vous pouvez voir la effectivement générée config. Cela vous aidera à repérer les questions de ce genre, et de savoir exactement quelles sont les informations Laravel va essayer de l'utiliser. Ainsi, vous pouvez arrêter que dans votre parcours d'essai temporairement à examiner ce que vous avez:'password' => env('MAIL_PASSWORD'),
que je trouve intéressante, car partout me dit de saisie de votre adresse email et votre mot de passe pour que. Je suis toujours à obtenir 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 .fichier envMAIL_HOST=smtp.gmail.com
Donc ce que j'ai fait a été de retirer tous les env de chaque partie de la mail.php fichier. Et maintenant, la bonne information est en train de passer à travers. OMG Merci cela a fonctionné. Vous êtes l'homme de lamailtrap.io
. Donc quelque part de là, il était encore traîner. En évitant env et de mettre toutes les valeurs directement dans la config est certainement une façon de le résoudre, il est heureux de l'aider. =)le problème sera résolu en désactivant le cache
Enfin je l'ai eu! Juste pour partager, il y a plus de configuration que juste .env
C'est .env
config/mail.php également besoin d'entrer une adresse & nom pour qu'il fonctionne.
Pour des fins de développement https://mailtrap.io/ vous fournit tous les paramètres qui doit être ajouté .fichier env.
Par exemple:
Sinon pour la mise en œuvre, vous pouvez obtenir les informations d'identification smtp être ajouté .fichier de configuration de la messagerie (comme gmail) n tous)
Après l'ajout, assurez-vous de redémarrer le serveur
Si jamais vous avez le même problème et tout essayer en ligne et il ne fonctionne pas, c'est probablement la config fichier de cache, c'est l'envoi de la mauvaise information. Vous pouvez le trouver dans bootstrap/cache/config.php. Assurez-vous que les informations d'identification sont juste là. Il m'a fallu une semaine pour comprendre cela. J'espère que cela va aider quelqu'un un jour.
Il m'arrive aussi.
Si pas encore travaillé essayer de faire
php artisan config:cache
Pour référence future pour les gens qui viennent ici. après l'exécution de la commande qui a été donné dans la troisième réponse ici(j'utilise maintenant Laravel 5.3).
Vous pouvez rencontrer ce problème:
Dans ce cas, vous devez l'ajouter manuellement à votre liste fournisseur en vertu de la app.php fichier. ALLER À:
app->config->app.php->'providers[]'
et d'ajouter, comme:Espère Que ça aide quelqu'un.
J'ai eu le même problème; mon
MAIL_ENCRYPTION
étaittls
surmail.php
mais c'étaitnull
sur.env
fichier.J'ai donc changé
null
àtls
et cela a fonctionné!Aucune des deux solutions n'a fonctionné pour moi sur localhost. J'ai même autorisé l'accès de moins en sécurité des applications, permis l'accès par le biais de déverrouillage affichage du captcha et définir le vérifier par les pairs et de vérifier par les pairs nom à faux pour SSL.
Finalement, j'ai utilisé l'open source SMTP solution de test de MailHog. Les étapes sont comme suit:
Qui signifie simplement que votre serveur n'a pas accès au Serveur SMTP.
Vous pouvez le tester en faisant:
Vous devriez obtenir l'erreur Accès refusé.
La solution est d'utiliser un autre serveur SMTP qui peut être accessible par votre serveur.
Vous devez redémarrer le serveur et exécutez ces commandes:
Qui devrait fonctionner.
Si vos résultats de
dd(Config::get('mail'));
sont nuls tout simplement utiliser la commandeJ'ai eu le même problème que vous, j'ai juste réussi à le faire fonctionner.
D'abord, vous devez vérifier que le .env paramètres sont correctement configurés. Voici mes paramètres:
Assurez-vous que votre mot de passe n'est pas entre guillemets :).
Et dans config/mail.php il a la suite, sans les commentaires.
Espère que cela fonctionne pour vous 🙂
Dans mon cas:
Redémarrez le serveur et exécutez
php artisan config:clear
commande.