web-dev-qa-db-ja.com

Laravel 5.1でgmailを使ってメールを送信するにはどうすればいいですか?

Localhostからのメール送信を何度も試してみますが、まだできません。やり方がわからなくなった。解決策を見つけるために検索を試みますが、見つけることができません。 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,

];
`

そして私は.envファイルを既にこのように編集しました:

MAIL_DRIVER=smtp
MAIL_Host=smtp.gmail.com
MAIL_PORT=587
[email protected]
MAIL_PASSWORD=password
MAIL_ENCRYPTION=null

それでもまだこのようなエラーが発生しました: enter image description here

60
SRENG Khorn

まずあなたのgmailアカウントにログインし、My account > Sign In And Security > Sign In to googleの下でtwo step verificationを有効にします、そしてあなたはapp passwordを生成することができます、そしてあなたは.envファイルでそのアプリパスワードを使うことができます。

.envファイルはこのようになります。

MAIL_DRIVER=smtp
MAIL_Host=smtp.gmail.com
MAIL_PORT=587
[email protected]
MAIL_PASSWORD=apppassword
MAIL_ENCRYPTION=tls

php artisan config:cacheファイルを変更した後は、.envを実行することを忘れないでください。

115
Sid

smtpドライバの代わりにsendmailを使用してみてください。 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
17
Martins

あなたがしなければならないのは、単にyou.envファイルを編集することだけです。

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

アプリパスワードgoto https://support.google.com/accounts/answer/185833?hl=ja

アプリのパスワードを生成して、将来の使用に備えて保存します。アプリパスワードを一度生成すると、パスワードを再編集したり、同じアプリパスワードを変更したりすることはできません(複数のアプリパスワードを作成できます)。

14
Rahul Kulabhi

これは私が試したことがあるワーキングサンプルです:

configフォルダの下にあるmail.phpを開き、次のオプションを入力します。

'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',

rootプロジェクトの下にある.envファイルを開きます。上記のオプションに従って、このファイルも編集してください。

MAIL_DRIVER=smtp    
MAIL_Host=smtp.gmail.com   
MAIL_PORT=587      
MAIL_USERNAME=youremailusername
MAIL_PASSWORD=youremailpassword
MAIL_ENCRYPTION=tls

その後、このコマンドを実行して設定をクリアします

php artisan config:cache

ローカルサーバーを再起動します

それでもまだAuthentication Requiredエラーが発生したときにコントローラがメール機能を含んでいるので、あなたのルートを訪問してみてください。信頼できない接続を承認するには、gmailアカウントでログインする必要があります。これを訪問 リンク 承認する

12
Faris Rayhan

すべての設定を正しく設定してもメールを送信でき、禁止エラーやタイムアウトエラーが発生する場合は、gmailでallow less secure apps to access your accountを設定できます。あなたはどのようにすることができます ここ

7
Gokigooooks

様々な組み合わせを試した後私のために働きます。

MAIL_DRIVER=smtp
MAIL_Host=smtp.gmail.com
MAIL_PORT=465
[email protected]
MAIL_PASSWORD=passowrd
MAIL_ENCRYPTION=ssl

アプリケーションパスワードを生成する必要があります https://myaccount.google.com/security そして私たちはそれをMAIL_PASSWORD環境変数として使用します。

これについては、Googleサーバからのエラーコードをチェックすることでわかりました。これは、使用頻度が高く、 this Webページにつながっていました。

0
unknown_coder

あなたのMAIL_PASSWORD=must a APPpaswordを変更した後。envサーバを停止してからconfiguratios cahce php artisan configをクリアして、もう一度サーバを起動します。

reference laravel 5.2では送信者アドレスがないとメッセージを送信できません。envとmail.phpの両方を設定しています

0

私にとっての問題は、何らかの理由で、ユーザー名/パスワードがmail configからNULLになったことです。電子メールを送信する前にそれを確認するには、次のコードで確認してください。

dd(Config::get('mail'));

ユーザー名/パスワードが無効になった場合は、次のように設定してください。

Config::set('mail.username', 'yourusername');
Config::set('mail.password', 'yourpassword');

bluehostで私はパスワードをリセットできませんでした。このドライバでうまくいきました:

MAIL_DRIVER=sendmail

XAMPPで開発している場合は、電子メールを送信するためのSMTPサービスが必要になります。 MailGunアカウントを使ってみてください。無料で使いやすいです。

0
Masud Miah

あなたが電子メールのパスワードを使用しているなら、あなたは後で無効にすることができるパスワードを設定する前にあなたが2ステップ認証を有効にする必要があるAPPパスワードを設定するためにapp password.forとそれを取り替えるべきです。

また、設定セクションで安全性の低いアプリを許可していることを確認してください。追加情報については、次の方法で確認できます ここ

0
svikramjeet