質問編集履歴

4

PostfixのTLS設定?

2018/09/14 04:24

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -534,6 +534,14 @@
534
534
 
535
535
 
536
536
 
537
+ PostfixのTLS設定?を追加する必要があるのでしょうか。
538
+
539
+ ざっとググっただけでは理解が追いつかなかったので、もう少し調べてみます。
540
+
541
+ 有用そうな情報がございましたらご回答いただけるとありがたいです。
542
+
543
+
544
+
537
545
  ⑤ファイアウォール・パケットフィルタリングについて
538
546
 
539
547
  ファイアウォールについてはON-OFFでそれぞれ試してみたのですが変化がありませんでした。ファイアウォールもですがパケットフィルタリングについてはさらに無知でした・・・調べてみます。試した方が良い設定があれば教えていただけるとありがたいです。

3

Markdown記法が外れてしまっていたので修正

2018/09/14 04:24

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -76,296 +76,296 @@
76
76
 
77
77
 
78
78
 
79
+ ```lang-PHP
80
+
81
+ <?php
82
+
83
+ // 変数の初期化
84
+
85
+ $page_flag = 0;
86
+
87
+ if( !empty($_POST['btn_confirm']) ) {
88
+
89
+ $page_flag = 1;
90
+
91
+ } elseif( !empty($_POST['btn_submit']) ) {
92
+
93
+ $page_flag = 2;
94
+
95
+ // 変数とタイムゾーンを初期化
96
+
97
+ $header = null;
98
+
99
+ $auto_reply_subject = null;
100
+
101
+ $auto_reply_text = null;
102
+
103
+ $admin_reply_subject = null;
104
+
105
+ $admin_reply_text = null;
106
+
107
+ date_default_timezone_set('Asia/Tokyo');
108
+
109
+ $header = "MIME-Version: 1.0\n";
110
+
111
+ $header .= "From: GRAYCODE <noreply@gray-code.com>\n";
112
+
113
+ $header .= "Reply-To: GRAYCODE <noreply@gray-code.com>\n";
114
+
115
+ // 件名を設定
116
+
117
+ $auto_reply_subject = 'お問い合わせありがとうございます。';
118
+
119
+ // 本文を設定
120
+
121
+ $auto_reply_text = "この度は、お問い合わせ頂き誠にありがとうございます。
122
+
123
+ 下記の内容でお問い合わせを受け付けました。\n\n";
124
+
125
+ $auto_reply_text .= "お問い合わせ日時:" . date("Y-m-d H:i") . "\n";
126
+
127
+ $auto_reply_text .= "氏名:" . $_POST['your_name'] . "\n";
128
+
129
+ $auto_reply_text .= "メールアドレス:" . $_POST['email'] . "\n\n";
130
+
131
+ $auto_reply_text .= "GRAYCODE 事務局";
132
+
133
+ // 自動返信メール送信
134
+
135
+ mb_send_mail( $_POST['email'], $auto_reply_subject, $auto_reply_text, $header);
136
+
137
+ // 運営側へ送るメールの件名
138
+
139
+ $admin_reply_subject = "お問い合わせを受け付けました";
140
+
141
+ // 本文を設定
142
+
143
+ $admin_reply_text = "下記の内容でお問い合わせがありました。\n\n";
144
+
145
+ $admin_reply_text .= "お問い合わせ日時:" . date("Y-m-d H:i") . "\n";
146
+
147
+ $admin_reply_text .= "氏名:" . $_POST['your_name'] . "\n";
148
+
149
+ $admin_reply_text .= "メールアドレス:" . $_POST['email'] . "\n\n";
150
+
151
+ // 管理者へメール送信
152
+
153
+ mb_send_mail( 'webmaster@gray-code.com', $admin_reply_subject, $admin_reply_text, $header);
154
+
155
+ }
156
+
157
+ ?>
158
+
159
+
160
+
161
+ <!DOCTYPE>
162
+
163
+ <html lang="ja">
164
+
165
+ <head>
166
+
167
+ <title>お問い合わせフォーム</title>
168
+
169
+ <style rel="stylesheet" type="text/css">
170
+
171
+ body {
172
+
173
+ padding: 20px;
174
+
175
+ text-align: center;
176
+
177
+ }
178
+
179
+ h1 {
180
+
181
+ margin-bottom: 20px;
182
+
183
+ padding: 20px 0;
184
+
185
+ color: #209eff;
186
+
187
+ font-size: 122%;
188
+
189
+ border-top: 1px solid #999;
190
+
191
+ border-bottom: 1px solid #999;
192
+
193
+ }
194
+
195
+ input[type=text] {
196
+
197
+ padding: 5px 10px;
198
+
199
+ font-size: 86%;
200
+
201
+ border: none;
202
+
203
+ border-radius: 3px;
204
+
205
+ background: #ddf0ff;
206
+
207
+ }
208
+
209
+ input[name=btn_confirm],
210
+
211
+ input[name=btn_submit],
212
+
213
+ input[name=btn_back] {
214
+
215
+ margin-top: 10px;
216
+
217
+ padding: 5px 20px;
218
+
219
+ font-size: 100%;
220
+
221
+ color: #fff;
222
+
223
+ cursor: pointer;
224
+
225
+ border: none;
226
+
227
+ border-radius: 3px;
228
+
229
+ box-shadow: 0 3px 0 #2887d1;
230
+
231
+ background: #4eaaf1;
232
+
233
+ }
234
+
235
+ input[name=btn_back] {
236
+
237
+ margin-right: 20px;
238
+
239
+ box-shadow: 0 3px 0 #777;
240
+
241
+ background: #999;
242
+
243
+ }
244
+
245
+ .element_wrap {
246
+
247
+ margin-bottom: 10px;
248
+
249
+ padding: 10px 0;
250
+
251
+ border-bottom: 1px solid #ccc;
252
+
253
+ text-align: left;
254
+
255
+ }
256
+
257
+ label {
258
+
259
+ display: inline-block;
260
+
261
+ margin-bottom: 10px;
262
+
263
+ font-weight: bold;
264
+
265
+ width: 150px;
266
+
267
+ }
268
+
269
+ .element_wrap p {
270
+
271
+ display: inline-block;
272
+
273
+ margin: 0;
274
+
275
+ text-align: left;
276
+
277
+ }
278
+
279
+ </style>
280
+
281
+ </head>
282
+
283
+ <body>
284
+
285
+ <h1>お問い合わせフォーム</h1>
286
+
287
+ <?php if( $page_flag === 1 ): ?>
288
+
289
+
290
+
291
+ <form method="post" action="">
292
+
293
+ <div class="element_wrap">
294
+
295
+ <label>氏名</label>
296
+
297
+ <p><?php echo $_POST['your_name']; ?></p>
298
+
299
+ </div>
300
+
301
+ <div class="element_wrap">
302
+
303
+ <label>メールアドレス</label>
304
+
305
+ <p><?php echo $_POST['email']; ?></p>
306
+
307
+ </div>
308
+
309
+ <input type="submit" name="btn_back" value="戻る">
310
+
311
+ <input type="submit" name="btn_submit" value="送信">
312
+
313
+ <input type="hidden" name="your_name" value="<?php echo $_POST['your_name']; ?>">
314
+
315
+ <input type="hidden" name="email" value="<?php echo $_POST['email']; ?>">
316
+
317
+ </form>
318
+
319
+
320
+
321
+ <?php elseif( $page_flag === 2 ): ?>
322
+
323
+
324
+
325
+ <p>送信が完了しました。</p>
326
+
327
+
328
+
329
+ <?php else: ?>
330
+
331
+
332
+
333
+ <form method="post" action="">
334
+
335
+ <div class="element_wrap">
336
+
337
+ <label>氏名</label>
338
+
339
+ <input type="text" name="your_name" value="">
340
+
341
+ </div>
342
+
343
+ <div class="element_wrap">
344
+
345
+ <label>メールアドレス</label>
346
+
347
+ <input type="text" name="email" value="">
348
+
349
+ </div>
350
+
351
+ <input type="submit" name="btn_confirm" value="入力内容を確認する">
352
+
353
+ </form>
354
+
355
+
356
+
357
+ <?php endif; ?>
358
+
359
+ </body>
360
+
361
+ </htm>
362
+
363
+ ```
364
+
365
+
366
+
79
367
  ---
80
368
 
81
- <?php
82
-
83
- // 変数の初期化
84
-
85
- $page_flag = 0;
86
-
87
- if( !empty($_POST['btn_confirm']) ) {
88
-
89
- $page_flag = 1;
90
-
91
- } elseif( !empty($_POST['btn_submit']) ) {
92
-
93
- $page_flag = 2;
94
-
95
- // 変数とタイムゾーンを初期化
96
-
97
- $header = null;
98
-
99
- $auto_reply_subject = null;
100
-
101
- $auto_reply_text = null;
102
-
103
- $admin_reply_subject = null;
104
-
105
- $admin_reply_text = null;
106
-
107
- date_default_timezone_set('Asia/Tokyo');
108
-
109
- $header = "MIME-Version: 1.0\n";
110
-
111
- $header .= "From: GRAYCODE <noreply@gray-code.com>\n";
112
-
113
- $header .= "Reply-To: GRAYCODE <noreply@gray-code.com>\n";
114
-
115
- // 件名を設定
116
-
117
- $auto_reply_subject = 'お問い合わせありがとうございます。';
118
-
119
- // 本文を設定
120
-
121
- $auto_reply_text = "この度は、お問い合わせ頂き誠にありがとうございます。
122
-
123
- 下記の内容でお問い合わせを受け付けました。\n\n";
124
-
125
- $auto_reply_text .= "お問い合わせ日時:" . date("Y-m-d H:i") . "\n";
126
-
127
- $auto_reply_text .= "氏名:" . $_POST['your_name'] . "\n";
128
-
129
- $auto_reply_text .= "メールアドレス:" . $_POST['email'] . "\n\n";
130
-
131
- $auto_reply_text .= "GRAYCODE 事務局";
132
-
133
- // 自動返信メール送信
134
-
135
- mb_send_mail( $_POST['email'], $auto_reply_subject, $auto_reply_text, $header);
136
-
137
- // 運営側へ送るメールの件名
138
-
139
- $admin_reply_subject = "お問い合わせを受け付けました";
140
-
141
- // 本文を設定
142
-
143
- $admin_reply_text = "下記の内容でお問い合わせがありました。\n\n";
144
-
145
- $admin_reply_text .= "お問い合わせ日時:" . date("Y-m-d H:i") . "\n";
146
-
147
- $admin_reply_text .= "氏名:" . $_POST['your_name'] . "\n";
148
-
149
- $admin_reply_text .= "メールアドレス:" . $_POST['email'] . "\n\n";
150
-
151
- // 管理者へメール送信
152
-
153
- mb_send_mail( 'webmaster@gray-code.com', $admin_reply_subject, $admin_reply_text, $header);
154
-
155
- }
156
-
157
- ?>
158
-
159
-
160
-
161
- <!DOCTYPE>
162
-
163
- <html lang="ja">
164
-
165
- <head>
166
-
167
- <title>お問い合わせフォーム</title>
168
-
169
- <style rel="stylesheet" type="text/css">
170
-
171
- body {
172
-
173
- padding: 20px;
174
-
175
- text-align: center;
176
-
177
- }
178
-
179
- h1 {
180
-
181
- margin-bottom: 20px;
182
-
183
- padding: 20px 0;
184
-
185
- color: #209eff;
186
-
187
- font-size: 122%;
188
-
189
- border-top: 1px solid #999;
190
-
191
- border-bottom: 1px solid #999;
192
-
193
- }
194
-
195
- input[type=text] {
196
-
197
- padding: 5px 10px;
198
-
199
- font-size: 86%;
200
-
201
- border: none;
202
-
203
- border-radius: 3px;
204
-
205
- background: #ddf0ff;
206
-
207
- }
208
-
209
- input[name=btn_confirm],
210
-
211
- input[name=btn_submit],
212
-
213
- input[name=btn_back] {
214
-
215
- margin-top: 10px;
216
-
217
- padding: 5px 20px;
218
-
219
- font-size: 100%;
220
-
221
- color: #fff;
222
-
223
- cursor: pointer;
224
-
225
- border: none;
226
-
227
- border-radius: 3px;
228
-
229
- box-shadow: 0 3px 0 #2887d1;
230
-
231
- background: #4eaaf1;
232
-
233
- }
234
-
235
- input[name=btn_back] {
236
-
237
- margin-right: 20px;
238
-
239
- box-shadow: 0 3px 0 #777;
240
-
241
- background: #999;
242
-
243
- }
244
-
245
- .element_wrap {
246
-
247
- margin-bottom: 10px;
248
-
249
- padding: 10px 0;
250
-
251
- border-bottom: 1px solid #ccc;
252
-
253
- text-align: left;
254
-
255
- }
256
-
257
- label {
258
-
259
- display: inline-block;
260
-
261
- margin-bottom: 10px;
262
-
263
- font-weight: bold;
264
-
265
- width: 150px;
266
-
267
- }
268
-
269
- .element_wrap p {
270
-
271
- display: inline-block;
272
-
273
- margin: 0;
274
-
275
- text-align: left;
276
-
277
- }
278
-
279
- </style>
280
-
281
- </head>
282
-
283
- <body>
284
-
285
- <h1>お問い合わせフォーム</h1>
286
-
287
- <?php if( $page_flag === 1 ): ?>
288
-
289
-
290
-
291
- <form method="post" action="">
292
-
293
- <div class="element_wrap">
294
-
295
- <label>氏名</label>
296
-
297
- <p><?php echo $_POST['your_name']; ?></p>
298
-
299
- </div>
300
-
301
- <div class="element_wrap">
302
-
303
- <label>メールアドレス</label>
304
-
305
- <p><?php echo $_POST['email']; ?></p>
306
-
307
- </div>
308
-
309
- <input type="submit" name="btn_back" value="戻る">
310
-
311
- <input type="submit" name="btn_submit" value="送信">
312
-
313
- <input type="hidden" name="your_name" value="<?php echo $_POST['your_name']; ?>">
314
-
315
- <input type="hidden" name="email" value="<?php echo $_POST['email']; ?>">
316
-
317
- </form>
318
-
319
-
320
-
321
- <?php elseif( $page_flag === 2 ): ?>
322
-
323
-
324
-
325
- <p>送信が完了しました。</p>
326
-
327
-
328
-
329
- <?php else: ?>
330
-
331
-
332
-
333
- <form method="post" action="">
334
-
335
- <div class="element_wrap">
336
-
337
- <label>氏名</label>
338
-
339
- <input type="text" name="your_name" value="">
340
-
341
- </div>
342
-
343
- <div class="element_wrap">
344
-
345
- <label>メールアドレス</label>
346
-
347
- <input type="text" name="email" value="">
348
-
349
- </div>
350
-
351
- <input type="submit" name="btn_confirm" value="入力内容を確認する">
352
-
353
- </form>
354
-
355
-
356
-
357
- <?php endif; ?>
358
-
359
- </body>
360
-
361
- </htm>
362
-
363
- ```
364
-
365
-
366
-
367
- ---
368
-
369
369
 
370
370
 
371
371
  ```ここに言語名を入力

2

試したこと(php.iniのsendmail_path、メールログ、Gmail、Postfix)

2018/09/14 04:04

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -76,10 +76,6 @@
76
76
 
77
77
 
78
78
 
79
- プログラミング
80
-
81
- ```lang-PHP
82
-
83
79
  ---
84
80
 
85
81
  <?php
@@ -406,7 +402,7 @@
406
402
 
407
403
 
408
404
 
409
-
405
+ 追記⑴ 9/13 22時頃
410
406
 
411
407
  具体的な操作
412
408
 
@@ -454,6 +450,96 @@
454
450
 
455
451
 
456
452
 
453
+ 追記⑵
454
+
455
+ (起動したいPHPのパスはMAMPのhtdocs>form_demoフォルダ内にあり、ここをrootとしてます。この位置は問題ないでしょうか?
456
+
457
+ `/Applications/MAMP/htdocs/form_demo/index.php`)
458
+
459
+
460
+
461
+ ①php.iniのsendmail_path
462
+
463
+ `/Applications/MAMP/bin/php/php7.2.8/conf/php.ini`
464
+
465
+
466
+
467
+ `; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
468
+
469
+ ; http://php.net/sendmail-path
470
+
471
+ ;sendmail_path = `
472
+
473
+ のままでしたので、
474
+
475
+ `sendmail_path = /usr/sbin/sendmail -t -i`
476
+
477
+ に変更し保存しました。(http://d.hatena.ne.jp/psquare/20140108/p1を参照)
478
+
479
+
480
+
481
+
482
+
483
+ ②Gmailの「安全性の低いアプリからのアカウントへのアクセスを許可する」に関わる設定変更
484
+
485
+ →完了しました。即反映ではないとのことなので、しばらく様子をみます。
486
+
487
+
488
+
489
+ ③Postfixのリロード
490
+
491
+ `sudo vim /etc/postfix/sasl_passwd`
492
+
493
+ `sudo postmap /etc/postfix/sasl_passwd`
494
+
495
+ (この実行のあとは特に反応なく次の行に改行されるのですが、それは問題ないのでしょうか?)
496
+
497
+ `sudo postfix reload`
498
+
499
+ 念のため再度この設定をやり直すと
500
+
501
+ postfix/postfix-script: refreshing the Postfix mail system
502
+
503
+ と表示されました。
504
+
505
+
506
+
507
+ ④メールのログ出力
508
+
509
+ 参照URLの情報より、ターミナルでrootにて`cd /var/log`
510
+
511
+ →`cat maillog | grep "from=<送信元メールアドレス>"`と実行したところ、
512
+
513
+ ファイル(orディレクトリ)がないとの表示でした。
514
+
515
+ (cat: maillog: No such file or directory)
516
+
517
+
518
+
519
+ ターミナルの別ウィンドウで、
520
+
521
+ log stream --predicate '(process == "smtpd") || (process == "smtp")' --info
522
+
523
+ を実行後、ブラウザ127.0.0.1:8080にてPHPを実行したところ
524
+
525
+
526
+
527
+ relay=smtp.gmail.com[●●●.●●●.●●●.●●●]:587, delay=0.84, delays=0.05/0/0.79/0, dsn=4.7.5, status=deferred (TLS is required, but our TLS engine is unavailable)
528
+
529
+
530
+
531
+ warning: Digest algorithm "md5" not found
532
+
533
+ warning: disabling TLS support
534
+
535
+
536
+
537
+ ⑤ファイアウォール・パケットフィルタリングについて
538
+
539
+ ファイアウォールについてはON-OFFでそれぞれ試してみたのですが変化がありませんでした。ファイアウォールもですがパケットフィルタリングについてはさらに無知でした・・・調べてみます。試した方が良い設定があれば教えていただけるとありがたいです。
540
+
541
+
542
+
457
543
 
458
544
 
459
545
  ### 補足情報(FW/ツールのバージョンなど)

1

試したこと(Postfixの設定)

2018/09/14 04:03

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -16,7 +16,7 @@
16
16
 
17
17
  MacにてPHPで自動返信メールフォームの実装の練習の為、以下のサイトのコードを、
18
18
 
19
- 簡易ウェブサーバー(ターミナルでrootにて $php -S 127.0.0.1:8080)で実行したところ、ブラウザ上でPHPにてフォームは表示され、”送信が完了しました”の画面までエラーなく進みますが、フォームに入力されたアドレス('email')にメールが届きません。
19
+ 簡易ウェブサーバー(ターミナルでrootにて `$php -S 127.0.0.1:8080`)で実行したところ、ブラウザ上でPHPにてフォームは表示され、”送信が完了しました”の画面までエラーなく進みますが、フォームに入力されたアドレス('email')にメールが届きません。
20
20
 
21
21
  https://gray-code.com/php/make-the-form-vol3/
22
22
 
@@ -40,7 +40,7 @@
40
40
 
41
41
 
42
42
 
43
- ブラウザ上でのPHPの実行・操作中はターミナル上では127.0.0.1:●●●●● [200]: /
43
+ ブラウザ上でのPHPの実行・操作中はターミナル上では`127.0.0.1:●●●●● [200]: /`
44
44
 
45
45
  というログがでるだけでエラーらしきものはありません。
46
46
 
@@ -78,6 +78,8 @@
78
78
 
79
79
  プログラミング
80
80
 
81
+ ```lang-PHP
82
+
81
83
  ---
82
84
 
83
85
  <?php
@@ -362,6 +364,8 @@
362
364
 
363
365
  </htm>
364
366
 
367
+ ```
368
+
365
369
 
366
370
 
367
371
  ---
@@ -382,15 +386,17 @@
382
386
 
383
387
  Postfixのmail systemを下記サイトを参考に設定しました。
384
388
 
389
+ https://blog.ch3cooh.jp/entry/20170704/1499130000
390
+
385
391
  設定したのは上記のフォームに入力したものと同じgmailアカウントで
386
392
 
387
- rootにて$sudo postfix startを実行すると
393
+ rootにて`$sudo postfix start`を実行すると
388
-
394
+
389
- postfix/postfix-script: fatal: the Postfix mail system is already runningと表示されました。
395
+ `postfix/postfix-script: fatal: the Postfix mail system is already running`と表示されました。
390
-
391
-
392
-
396
+
397
+
398
+
393
- しかし $ date | mail -s test (メールアドレス)
399
+ しかし `$ date | mail -s test (メールアドレス)`
394
400
 
395
401
  を実行してもメールは届きません。
396
402
 
@@ -400,7 +406,53 @@
400
406
 
401
407
 
402
408
 
409
+
410
+
411
+ 具体的な操作
412
+
413
+ ①rootで `$ sudo vim /etc/postfix/sasl_passwd`
414
+
415
+
416
+
417
+ `smtp.gmail.com:587 (username)@gmail.com:(パスワード)`
418
+
419
+ を入力保存
420
+
421
+
422
+
423
+ ②`$ sudo vim /etc/postfix/main.cf`
424
+
425
+
426
+
427
+ `relayhost=smtp.gmail.com:587
428
+
429
+ smtp_sasl_auth_enable=yes
430
+
403
- https://blog.ch3cooh.jp/entry/20170704/1499130000
431
+ smtp_sasl_password_maps=hash:/etc/postfix/sasl_passwd
432
+
433
+ smtp_use_tls=yes
434
+
435
+ smtp_tls_security_level=encrypt
436
+
437
+ tls_random_source=dev:/dev/urandom
438
+
439
+ smtp_sasl_security_options = noanonymous
440
+
441
+ smtp_always_send_ehlo = yes
442
+
443
+ smtp_sasl_mechanism_filter = plain
444
+
445
+ compatibility_level = 2`
446
+
447
+ を追記保存
448
+
449
+
450
+
451
+ ③`$ sudo postfix reload`
452
+
453
+ →postfix/postfix-script: refreshing the Postfix mail systemと表示される。
454
+
455
+
404
456
 
405
457
 
406
458