J'essaie encore et encore de tester l'envoi d'un email de localhost mais je ne peux toujours pas. Je ne sais plus comment le faire. J'essaie de chercher une solution mais je ne parviens pas à en trouver une. J'ai édité config/mail.php:
<?php
return [
/*
|--------------------------------------------------------------------------
| Mail Driver
|--------------------------------------------------------------------------
|
| Laravel supports both SMTP and PHP's "mail" function as drivers for the
| sending of e-mail. You may specify which one you're using throughout
| your application here. By default, Laravel is setup for SMTP mail.
|
| Supported: "smtp", "mail", "sendmail", "mailgun", "mandrill", "ses", "log"
|
*/
'driver' => env('MAIL_DRIVER', 'smtp'),
/*
|--------------------------------------------------------------------------
| SMTP Host Address
|--------------------------------------------------------------------------
|
| Here you may provide the Host address of the SMTP server used by your
| applications. A default option is provided that is compatible with
| the Mailgun mail service which will provide reliable deliveries.
|
*/
'Host' => env('MAIL_Host', 'smtp.gmail.com'),
/*
|--------------------------------------------------------------------------
| SMTP Host Port
|--------------------------------------------------------------------------
|
| This is the SMTP port used by your application to deliver e-mails to
| users of the application. Like the Host we have set this value to
| stay compatible with the Mailgun e-mail application by default.
|
*/
'port' => env('MAIL_PORT', 587),
/*
|--------------------------------------------------------------------------
| Global "From" Address
|--------------------------------------------------------------------------
|
| You may wish for all e-mails sent by your application to be sent from
| the same address. Here, you may specify a name and address that is
| used globally for all e-mails that are sent by your application.
|
*/
'from' => ['address' => '[email protected]', 'name' => 'Do not Reply'],
/*
|--------------------------------------------------------------------------
| E-Mail Encryption Protocol
|--------------------------------------------------------------------------
|
| Here you may specify the encryption protocol that should be used when
| the application send e-mail messages. A sensible default using the
| transport layer security protocol should provide great security.
|
*/
'encryption' => env('MAIL_ENCRYPTION', 'tls'),
/*
|--------------------------------------------------------------------------
| SMTP Server Username
|--------------------------------------------------------------------------
|
| If your SMTP server requires a username for authentication, you should
| set it here. This will get used to authenticate with your server on
| connection. You may also set the "password" value below this one.
|
*/
'username' => env('MAIL_USERNAME'),
/*
|--------------------------------------------------------------------------
| SMTP Server Password
|--------------------------------------------------------------------------
|
| Here you may set the password required by your SMTP server to send out
| messages from your application. This will be given to the server on
| connection so that the application will be able to send messages.
|
*/
'password' => env('MAIL_PASSWORD'),
/*
|--------------------------------------------------------------------------
| Sendmail System Path
|--------------------------------------------------------------------------
|
| When using the "sendmail" driver to send e-mails, we will need to know
| the path to where Sendmail lives on this server. A default path has
| been provided here, which will work well on most of your systems.
|
*/
'sendmail' => '/usr/sbin/sendmail -bs',
/*
|--------------------------------------------------------------------------
| Mail "Pretend"
|--------------------------------------------------------------------------
|
| When this option is enabled, e-mail will not actually be sent over the
| web and will instead be written to your application's logs files so
| you may inspect the message. This is great for local development.
|
*/
'pretend' => false,
];
`
et j'ai édité déjà le fichier .env
comme ceci:
MAIL_DRIVER=smtp
MAIL_Host=smtp.gmail.com
MAIL_PORT=587
[email protected]
MAIL_PASSWORD=password
MAIL_ENCRYPTION=null
commencez par vous connecter à votre compte Gmail et sous My account > Sign In And Security > Sign In to google
, activez two step verification
, vous pourrez alors générer app password
et utiliser le mot de passe de cette application dans le fichier .env
.
Votre fichier .env
ressemblera alors à ceci
MAIL_DRIVER=smtp
MAIL_Host=smtp.gmail.com
MAIL_PORT=587
[email protected]
MAIL_PASSWORD=apppassword
MAIL_ENCRYPTION=tls
N'oubliez pas de lancer php artisan config:cache
après avoir apporté des modifications à votre fichier .env
.
Essayez d’utiliser un pilote sendmail à la place du smtp (selon ces recommandations: - http://code.tutsplus.com/tutorials/sending-emails-with-laravel-4-gmail--net-36105 )
MAIL_DRIVER=sendmail
MAIL_Host=smtp.gmail.com
MAIL_PORT=587
[email protected]
MAIL_PASSWORD=apppassword
MAIL_ENCRYPTION=tls
Tout ce que vous avez à faire est simplement d’éditer dans le fichier you.env, c’est tout.
MAIL_DRIVER=smtp
MAIL_Host=smtp.gmail.com
MAIL_PORT=465
MAIL_USERNAME=<your_email_address>
MAIL_PASSWORD=<your_gmail_app_password_>
MAIL_ENCRYPTION=ssl
pour le mot de passe de l'application goto https://support.google.com/accounts/answer/185833?hl=fr
et générez votre mot de passe d'application et enregistrez-le pour une utilisation ultérieure. car une fois que vous avez généré le mot de passe de l'application, vous ne pouvez pas modifier le mot de passe ni changer le même mot de passe d'application (vous pouvez créer plusieurs mots de passe d'application).
Ceci fonctionne échantillon que j'ai essayé:
Ouvrez votre dossier mail.php
sous config
puis remplissez-le avec cette option:
'driver' => env('MAIL_DRIVER', 'smtp'),
'Host' => env('MAIL_Host', 'smtp.gmail.com'),
'port' => env('MAIL_PORT', 587),
'from' => ['address' =>'[email protected]', 'name' => 'Email_Subject'],
'encryption' => env('MAIL_ENCRYPTION', 'tls'),
'username' => env('MAIL_USERNAME','[email protected]'),
'password' => env('MAIL_PASSWORD','youremailpassword'),
'sendmail' => '/usr/sbin/sendmail -bs',
Ouvrez votre fichier .env
sous le projet root
. Éditez également ce fichier en suivant l’option ci-dessus telle
MAIL_DRIVER=smtp
MAIL_Host=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=youremailusername
MAIL_PASSWORD=youremailpassword
MAIL_ENCRYPTION=tls
Après cela, effacez votre configuration en exécutant cette commande
php artisan config:cache
Redémarrez votre serveur local
Essayez de visiter votre route avec contrôleur contient la fonction de messagerie à la première fois il toujours erreur Authentication Required
. Vous devez vous connecter via votre compte gmail pour autoriser les connexions non fiables. Visitez ce lien pour autoriser
si vous pouviez toujours envoyer des courriers après avoir réglé toutes les configurations correctement et obtenir des erreurs d'interdiction ou de dépassement de délai, vous pouvez définir le allow less secure apps to access your account
dans gmail. vous pouvez suivre comment ici
Travailler pour moi après avoir essayé diverses combinaisons.
MAIL_DRIVER=smtp
MAIL_Host=smtp.gmail.com
MAIL_PORT=465
[email protected]
MAIL_PASSWORD=passowrd
MAIL_ENCRYPTION=ssl
Il est nécessaire de générer le mot de passe de l’application https://myaccount.google.com/security et de l’utiliser comme variable d’environnement MAIL_PASSWORD
.
J'ai trouvé à ce sujet en vérifiant le code d'erreur de Google Server, qui était use-full et m'a conduit à this page Web.
votre MAIL_PASSWORD=must a APPpasword
après avoir changé le . env arrêtez le serveur puis effacez les configurations cahce php artisan config: cahce et redémarrez le serveur
Le problème pour moi est que, pour une raison quelconque, le nom d'utilisateur/mot de passe est venu à NULL de la configuration de messagerie. Pour vérifier cela avant d’envoyer un email vérifier avec le code suivant:
dd(Config::get('mail'));
Si votre nom d'utilisateur/mot de passe est venu à null, définissez-le avec:
Config::set('mail.username', 'yourusername');
Config::set('mail.password', 'yourpassword');
dans bluehost, je n'ai pas pu réinitialiser le mot de passe. avec ce pilote a travaillé:
MAIL_DRIVER=sendmail
Si vous développez sur un XAMPP, vous aurez besoin d'un service SMTP pour envoyer le courrier électronique. Essayez d'utiliser un compte MailGun. C'est gratuit et facile à utiliser.
Vous pouvez également essayer d’ajouter à laravel ces 2 lignes:
[email protected]
MAIL_FROM_NAME="[email protected]"
Après cela, lancez cette commande pour vider la configuration du cache courrier:
php artisan config:cache
Si vous utilisez un mot de passe de messagerie, remplacez-le par mot de passe app.pour définir le mot de passe APP, vous devez activer l'authentification en 2 étapes avant de définir le mot de passe, qui peut être désactivé ultérieurement.
Assurez-vous également que vous avez autorisé l'application moins sécurisée dans la section configuration. Pour plus d'informations, vous pouvez suivre la procédure à suivre ici