質問編集履歴

2

追記2

2016/09/16 00:07

投稿

mizutama72
mizutama72

スコア31

test CHANGED
File without changes
test CHANGED
@@ -87,3 +87,143 @@
87
87
  ```
88
88
 
89
89
  別の機能ですが、上記の場合のメールは送ることができるので、パスワードリセットに限っておかしいような形です。。
90
+
91
+
92
+
93
+ formのactionは、
94
+
95
+ ```html
96
+
97
+ <form class="form-auth" action="/password/email" method="POST">
98
+
99
+ ```
100
+
101
+
102
+
103
+ envは、システム名などがあるので、全部は出せませんが、
104
+
105
+ ```php
106
+
107
+ APP_ENV=local
108
+
109
+ APP_DEBUG=true
110
+
111
+ APP_KEY=XXXXXXXXXXXXXXXXXXXXXXXX
112
+
113
+
114
+
115
+ DB_HOST=127.0.0.1
116
+
117
+ DB_DATABASE=DB名
118
+
119
+ DB_USERNAME=root
120
+
121
+ DB_PASSWORD=root
122
+
123
+
124
+
125
+ CACHE_DRIVER=file
126
+
127
+ SESSION_DRIVER=file
128
+
129
+ QUEUE_DRIVER=sync
130
+
131
+
132
+
133
+ MAIL_DRIVER=smtp
134
+
135
+ MAIL_HOST=お名前サーバー
136
+
137
+ MAIL_PORT=587
138
+
139
+ MAIL_FROM_ADDRESS=システムのメールアドレス
140
+
141
+ MAIL_FROM_NAME=システムのユーザ名
142
+
143
+ MAIL_USERNAME=システムのメールアドレス
144
+
145
+ MAIL_PASSWORD=パスワード
146
+
147
+ MAIL_ENCRYPTION=tls
148
+
149
+
150
+
151
+ ```
152
+
153
+
154
+
155
+ となっています。
156
+
157
+
158
+
159
+ 以下を試しましたが、
160
+
161
+ ```ここに言語を入力
162
+
163
+ # php artisan tinker
164
+
165
+ Psy Shell v0.4.4 (PHP 5.5.26 — cli) by Justin Hileman
166
+
167
+ >>> Mail::raw('Test Mail', function($message) { $message->to('xxxx@xxxx.jp')->subject('test'); });
168
+
169
+ => 1
170
+
171
+ ```
172
+
173
+ xxxx@xxxx.jp には正常にメールが届きます。
174
+
175
+
176
+
177
+ また、以前に別の担当者がマルチユーザ対応?ということで、
178
+
179
+ ```php
180
+
181
+ Route::post('/admin/password_reset',function(Request $request){
182
+
183
+ Password::admin()->sendResetLink($request->only('email'), function (Message $message) {
184
+
185
+ $message->subject("Password Reset Link");
186
+
187
+ });
188
+
189
+ //ログイン画面に戻る
190
+
191
+ return \Redirect::to("/admin");
192
+
193
+ });
194
+
195
+ ```
196
+
197
+ ということをやっていた経緯があります。現在はやっていません。
198
+
199
+
200
+
201
+ resetPasswordsに上記のようにやってみると、
202
+
203
+ ```php
204
+
205
+ $response = Password::user()->sendResetLink($request->only('email'), function (Message $message) {
206
+
207
+ $message->subject($this->getEmailSubject());
208
+
209
+ });
210
+
211
+ ```
212
+
213
+
214
+
215
+ ```php
216
+
217
+ SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'email' cannot be null
218
+
219
+
220
+
221
+ SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'email' cannot be null (SQL: insert into `password_resets` (`email`, `token`, `type`, `created_at`) values (, 41ab894a204a827415dcd728ff1a41....
222
+
223
+ ```
224
+
225
+
226
+
227
+ とemailが取れないというエラーになります。
228
+
229
+ ですが、上記のsendResetLinkの前に、var_dump($request->only('email'))を実行すると、メールアドレスは取得できます。

1

追記

2016/09/16 00:07

投稿

mizutama72
mizutama72

スコア31

test CHANGED
File without changes
test CHANGED
@@ -65,3 +65,25 @@
65
65
  });
66
66
 
67
67
  ```
68
+
69
+
70
+
71
+ メールは送信されていません。
72
+
73
+ エラーログは、htdocs/システム名/storage/logs/laravel.log には、エラーらしきログは出ません。(送信時間にログファイルが更新されません。)
74
+
75
+ その他、見るべきところはありますでしょうか?
76
+
77
+ ちなみに
78
+
79
+ ```php
80
+
81
+ $mailer->send(
82
+
83
+ 'user.email.confirm',
84
+
85
+ ['user' => $user, 'token' => $user->confirmation_token], function ($message) use ($user) { $message->to($user->email)->subject('仮登録のお知らせ'); } );
86
+
87
+ ```
88
+
89
+ 別の機能ですが、上記の場合のメールは送ることができるので、パスワードリセットに限っておかしいような形です。。