teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

追記2

2016/09/16 00:07

投稿

mizutama72
mizutama72

スコア31

title CHANGED
File without changes
body CHANGED
@@ -42,4 +42,74 @@
42
42
  'user.email.confirm',
43
43
  ['user' => $user, 'token' => $user->confirmation_token], function ($message) use ($user) { $message->to($user->email)->subject('仮登録のお知らせ'); } );
44
44
  ```
45
- 別の機能ですが、上記の場合のメールは送ることができるので、パスワードリセットに限っておかしいような形です。。
45
+ 別の機能ですが、上記の場合のメールは送ることができるので、パスワードリセットに限っておかしいような形です。。
46
+
47
+ formのactionは、
48
+ ```html
49
+ <form class="form-auth" action="/password/email" method="POST">
50
+ ```
51
+
52
+ envは、システム名などがあるので、全部は出せませんが、
53
+ ```php
54
+ APP_ENV=local
55
+ APP_DEBUG=true
56
+ APP_KEY=XXXXXXXXXXXXXXXXXXXXXXXX
57
+
58
+ DB_HOST=127.0.0.1
59
+ DB_DATABASE=DB名
60
+ DB_USERNAME=root
61
+ DB_PASSWORD=root
62
+
63
+ CACHE_DRIVER=file
64
+ SESSION_DRIVER=file
65
+ QUEUE_DRIVER=sync
66
+
67
+ MAIL_DRIVER=smtp
68
+ MAIL_HOST=お名前サーバー
69
+ MAIL_PORT=587
70
+ MAIL_FROM_ADDRESS=システムのメールアドレス
71
+ MAIL_FROM_NAME=システムのユーザ名
72
+ MAIL_USERNAME=システムのメールアドレス
73
+ MAIL_PASSWORD=パスワード
74
+ MAIL_ENCRYPTION=tls
75
+
76
+ ```
77
+
78
+ となっています。
79
+
80
+ 以下を試しましたが、
81
+ ```ここに言語を入力
82
+ # php artisan tinker
83
+ Psy Shell v0.4.4 (PHP 5.5.26 — cli) by Justin Hileman
84
+ >>> Mail::raw('Test Mail', function($message) { $message->to('xxxx@xxxx.jp')->subject('test'); });
85
+ => 1
86
+ ```
87
+ xxxx@xxxx.jp には正常にメールが届きます。
88
+
89
+ また、以前に別の担当者がマルチユーザ対応?ということで、
90
+ ```php
91
+ Route::post('/admin/password_reset',function(Request $request){
92
+ Password::admin()->sendResetLink($request->only('email'), function (Message $message) {
93
+ $message->subject("Password Reset Link");
94
+ });
95
+ //ログイン画面に戻る
96
+ return \Redirect::to("/admin");
97
+ });
98
+ ```
99
+ ということをやっていた経緯があります。現在はやっていません。
100
+
101
+ resetPasswordsに上記のようにやってみると、
102
+ ```php
103
+ $response = Password::user()->sendResetLink($request->only('email'), function (Message $message) {
104
+ $message->subject($this->getEmailSubject());
105
+ });
106
+ ```
107
+
108
+ ```php
109
+ SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'email' cannot be null
110
+
111
+ SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'email' cannot be null (SQL: insert into `password_resets` (`email`, `token`, `type`, `created_at`) values (, 41ab894a204a827415dcd728ff1a41....
112
+ ```
113
+
114
+ とemailが取れないというエラーになります。
115
+ ですが、上記のsendResetLinkの前に、var_dump($request->only('email'))を実行すると、メールアドレスは取得できます。

1

追記

2016/09/16 00:07

投稿

mizutama72
mizutama72

スコア31

title CHANGED
File without changes
body CHANGED
@@ -31,4 +31,15 @@
31
31
  $response = Password::sendResetLink($request->only('email'), function (Message $message) {
32
32
  $message->subject($this->getEmailSubject());
33
33
  });
34
- ```
34
+ ```
35
+
36
+ メールは送信されていません。
37
+ エラーログは、htdocs/システム名/storage/logs/laravel.log には、エラーらしきログは出ません。(送信時間にログファイルが更新されません。)
38
+ その他、見るべきところはありますでしょうか?
39
+ ちなみに
40
+ ```php
41
+ $mailer->send(
42
+ 'user.email.confirm',
43
+ ['user' => $user, 'token' => $user->confirmation_token], function ($message) use ($user) { $message->to($user->email)->subject('仮登録のお知らせ'); } );
44
+ ```
45
+ 別の機能ですが、上記の場合のメールは送ることができるので、パスワードリセットに限っておかしいような形です。。