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: enter image description here

42
demandé sur SRENG Khorn 2015-09-11 07:03:16

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 .

85
répondu Sid 2015-09-11 04:38:02

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
15
répondu Martins 2016-03-24 09:12:16

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

11
répondu Faris Rayhan 2017-03-30 14:39:59

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)

8
répondu Rahul Kulabhi 2018-02-17 10:56:46

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

7
répondu Gokigooooks 2016-03-25 18:31:42

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

0
répondu I Made Pustikayasa 2017-05-23 10:31:30

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');
0
répondu Rafael Silva da Cunha 2017-12-11 12:57:10

dans bluehost Je ne pouvais pas réinitialiser mot de passe; avec ce pilote a fonctionné:

MAIL_DRIVER=sendmail
0
répondu Diego Santa Cruz Mendezú 2018-03-21 23:17:07

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.

-1
répondu Masud Miah 2017-07-30 11:02:13

il suffit d'exécuter cette commande "php artisan config:cache"

-1
répondu gonga dev 2018-09-29 18:20:46