Comment envoyer du courrier en utilisant gmail dans Laravel 5.1?
j'essaie encore et encore de tester l'envoi d'un e-mail de localhost mais je ne peux toujours pas. Je ne sais plus comment faire. J'essaie de trouver une solution mais je n'en trouve pas. 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' => 'myemail@gmail.com', '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é .env
fichier comme ceci déjà:
MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=myemail@gmail.com
MAIL_PASSWORD=password
MAIL_ENCRYPTION=null
il a quand même produit une erreur comme celle-ci:
10 réponses
ouvrez une première session sur votre compte gmail et sous My account > Sign In And Security > Sign In to google
, activez two step verification
, puis vous pouvez générer app password
, et vous pouvez utiliser le mot de passe de l'application dans le fichier .env
.
votre fichier .env
ressemblera alors à quelque chose comme ceci
MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=myemail@gmail.com
MAIL_PASSWORD=apppassword
MAIL_ENCRYPTION=tls
n'oubliez pas d'exécuter php artisan config:cache
après avoir apporté des modifications à votre fichier .env
.
essayez d'utiliser sendmail au lieu de smtp driver (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
MAIL_USERNAME=your@gmail.com
MAIL_PASSWORD=apppassword
MAIL_ENCRYPTION=tls
c'est un échantillon de travail que j'ai essayé:
ouvrez votre mail.php
sous config
dossier puis remplissez avec cette option :
'driver' => env('MAIL_DRIVER', 'smtp'),
'host' =>env('MAIL_HOST', 'smtp.gmail.com'),
'port' =>env('MAIL_PORT', 587),
'from' => ['address' =>'youremail@mail.com', 'name' => 'Email_Subject'],
'encryption' => env('MAIL_ENCRYPTION', 'tls'),
'username' =>env('MAIL_USERNAME','yourusername@mail.com'),
'password' =>env('MAIL_PASSWORD','youremailpassword'),
'sendmail' =>'/usr/sbin/sendmail -bs',
ouvrir votre .env
fichier sous root
projet. Modifier également ce fichier ci-dessus
option telle que
MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=youremailusername<br>
MAIL_PASSWORD=youremailpassword
MAIL_ENCRYPTION=tls
après cela, effacez votre configuration en exécutant cette commande
php artisan config:cache
redémarrer votre serveur local
essayez visiter votre route avec le contrôleur contient la fonction de courrier d'abord
temps toujours l'erreur Authentication Required
. Vous devez vous connecter via
votre compte gmail pour autoriser une connexion non fiable. Visitez ce lien 1519200920"
pour autoriser
tout ce que vous avez à faire est simplement éditer en vous.fichier de configuration, 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 app goto https://support.google.com/accounts/answer/185833?hl=en
et géné rer votre application pasword et économiser pour une utilisation future. parce qu'une fois que vous générez le mot de passe de l'application, vous ne pouvez pas rééditer le mot de passe ou changer le même mot de passe de l'application.(vous pouvez créer plusieurs mots de passe app)
si vous pouviez encore être capable d'envoyer du courrier après avoir paramétré toutes les configs à droite et obtenir des erreurs interdites ou de temporisation, vous pourriez définir le allow less secure apps to access your account
dans gmail. vous pouvez suivre comment ici
votre MAIL_PASSWORD=must a APPpasword
après changement le .env arrêter le serveur, puis d'effacer configuratios cahce php artisan config:cahce et redémarrer le serveur
de référence ne peut pas envoyer de message sans adresse d'expéditeur dans laravel 5.2 j'ai défini .env et courrier.php à la fois
le problème pour moi est que pour une raison quelconque le nom d'utilisateur/mot de passe est venu nul de la config mail. 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 nul il suffit de définir avec:
Config::set('mail.username', 'yourusername');
Config::set('mail.password', 'yourpassword');
dans bluehost Je ne pouvais pas réinitialiser mot de passe; avec ce pilote a fonctionné:
MAIL_DRIVER=sendmail
si vous développez sur un XAMPP, alors vous aurez besoin d'un service SMTP pour envoyer l'email. Essayez d'utiliser un compte MailGun. C'est gratuit et facile à utiliser.
il suffit d'exécuter cette commande "php artisan config:cache"