[php] Essayer d'obtenir Laravel 5 email pour travailler



Answers

Ma configuration de fichier .env est comme ça pour laravel 5.1

MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=example@gmail.com
MAIL_PASSWORD=****************
MAIL_ENCRYPTION=tls

ici la chose la plus importante est que j'ai créé le mot de passe spécifique de l'application gmail (16 chiffres).

Je dois révéler une chose de plus, car aucune chance pour la configuration. Autrement dit, chaque fois que j'ai changé le fichier .env besoin d'exécuter cette commande

php artisan config:cache

Et c'est le plus important, car sans cette commande, laravel exécute les paramètres précédents de son cache. Il m'a fallu plus de 10 heures pour comprendre.

Question

J'essaye d'envoyer un email à 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 le code "530" a été reçu, avec le message "530 5.7.1 Authentification requise

Jusqu'à présent, j'essaie juste de le faire fonctionner avec Gmail. Comment puis-je faire en sorte que cela fonctionne?

C'est 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' =>"MyUsername@gmail.com" , 'name' => "example"],
'encryption' => 'tls',
'username' => env('MyUsername@gmail.com'),
'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('example@gmail.com', 'HisName')->subject('Welcome!');
});
});

C'est 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



j'ai eu le même problème; mon 'MAIL_ENCRYPTION' était 'tls' sur mail.php mais c'était 'null' sur le fichier .env donc j'ai changé 'null' en 'tls' et ça a marché!




Finalement j'ai eu! Juste pour partager, il y a plus de config que juste .env

C'est .env

MAIL_DRIVER=smtp

MAIL_HOST=smtp.gmail.com

MAIL_PORT=587

MAIL_USERNAME=UserName@gmail.com

MAIL_PASSWORD=********

MAIL_ENCRYPTION=tls

config / mail.php doit également entrer l'adresse et le nom pour que cela fonctionne.

'driver' => env('MAIL_DRIVER', 'smtp'),
'host' => env('MAIL_HOST', 'smtp.gmail.com'),
'port' => env('MAIL_PORT', 587),
'from' => ['address' => 'Username@gmail.com' , 'name' => 'YourName' ],
'encryption' => env('MAIL_ENCRYPTION', 'tls'),
'username' => env('MAIL_USERNAME'),
'password' => env('MAIL_PASSWORD'),
'sendmail' => '/usr/sbin/sendmail -bs',
'pretend' => false,



Cela m'arrive aussi.

C'est parce que lorsque nous .env fichier .env , nous devons redémarrer le serveur. Arrêtez simplement le php artisan serve actuel et recommencez-le. Cela fonctionnera à coup sûr.

Si ce n'est pas encore fait, essayez de faire php artisan config:cache




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, j'ai autorisé l'accès via l'affichage de la fonction de déverrouillage captcha et j'ai défini l'homologue de vérification et vérifié que le nom de l'homologue était faux pour SSL.

Finalement, j'ai utilisé la solution de test SMTP open source de MailHog. Les étapes sont les suivantes:

  1. Téléchargez la dernière version de MailHog pour votre système d'exploitation
  2. Spécifiez les paramètres suivants dans votre fichier .env

MAIL_DRIVER = smtp

MAIL_HOST = 127.0.0.1

MAIL_PORT = 1025

MAIL_USERNAME = testuser

MAIL_PASSWORD = testpwd

MAIL_ENCRYPTION = null

MAIL_FROM_ADDRESS=theaddress@youwant.com

  1. Exécutez le fichier téléchargé de MailHog
  2. Envoyer un email
  3. Vérifiez envoyé un email en allant à localhost: 8025



  1. Vous allez au Mailgun
  2. Cliquez sur Destinataires autorisés
  3. Ajouter l'adresse e-mail que vous souhaitez envoyer un mail.
  4. Vérifiez le message envoyé au courrier.
  5. Bravo! ... Tu es bon à faire.



À des fins de développement, https://mailtrap.io/ vous fournit tous les paramètres qui doivent être ajoutés au fichier .env. Par exemple:

Host:   mailtrap.io
Port:   25 or 465 or 2525
Username:   cb1d1475bc6cce
Password:   7a330479c15f99
Auth:   PLAIN, LOGIN and CRAM-MD5
TLS:    Optional

Sinon, à des fins de mise en œuvre, vous pouvez obtenir les informations d'identification smtp à ajouter dans le fichier .env de la messagerie (comme gmail n all)

Après l'ajout, assurez-vous de redémarrer le serveur




Related