web-dev-qa-db-fra.com

Comment envoyer un courrier en utilisant gmail dans Laravel 5.1?

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

Il produisait encore une erreur comme ceci: enter image description here

63
SRENG Khorn

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.

119
Sid

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
18
Martins

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).

15
Rahul Kulabhi

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

13
Faris Rayhan

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

7
Gokigooooks

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.

0
unknown_coder

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

reference Impossible d'envoyer un message sans l'adresse de l'expéditeur dans laravel 5.2 J'ai défini les fichiers .env et mail.php

0
I Made Pustikayasa

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');
0

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.

0
Masud Miah

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
0
gtamborero

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

0
svikramjeet