質問編集履歴

8

誤字

2022/03/19 09:43

投稿

soraatori
soraatori

スコア55

test CHANGED
File without changes
test CHANGED
@@ -1,591 +1,296 @@
1
1
  ### 前提・実現したいこと
2
2
 
3
-
4
-
5
3
  名刺を注文するシステムを改修し作っています。
6
-
7
4
  ユーザー登録フォームを実装中に、確認メール届かないという問題が発生しました。
8
-
9
5
  ドメイン名は実際に存在するものです。
10
-
11
6
  「&SENDMAIL」のコードはおそらく下記の「shop_util.pl」に記載してあると思われます。
12
7
 
13
-
14
-
15
8
  ### 該当のソースコード
16
9
 
17
-
18
-
19
10
  ```cgi
20
-
21
11
  #regist.cgi
22
12
 
23
-
24
-
25
13
  省略
26
14
 
27
-
28
-
29
15
  $cookie{'P1'} = $FORM{'P1'} ;
30
-
31
16
  $cookie{'P2'} = $FORM{'P2'} ;
32
-
33
17
  $cookie{'P3'} = $FORM{'P3'} ;
34
18
 
35
-
36
-
37
19
  # $bits128 = &md5::convert("$FORM{'P1'}$FORM{'P2'}$FORM{'P3'}$FORM{'P4'}");#
38
-
39
20
  # $MD5PASS = sprintf("%08x%08x%08x%08x", unpack('NNNN', $bits128)); #
40
21
 
41
-
42
-
43
22
  $to = $FORM{'P1'} ;
44
-
45
- $from = 'k.iitsuka@creaplus.co.jp' ;
23
+ $from = 'k.iitsuka@' ;
46
-
47
24
  $subject = '登録のご案内' ;
48
-
49
25
  $data .=<<'_HTML_';
50
-
51
26
  申し込みいただき有り難うございます。
52
-
53
27
  登録の準備が出来ました。
54
-
55
28
  下記のアドレスにアクセスして登録してください。
56
29
 
57
-
58
-
59
30
  _HTML_
60
31
 
61
-
62
-
63
- $data .="http://www.creaplus.co.jp/card/regist.cgi?sd=$MD5PASS";
32
+ $data .="http://www./card/regist.cgi?sd=$MD5PASS";
64
-
65
-
66
33
 
67
34
  $data .=<<'_HTML_';
68
35
 
69
-
70
-
71
36
  このアドレスをクリックするとページが開きます。
72
-
73
37
  本人確認のため、開いたページにパスワードを入力してください。
74
38
 
75
-
76
-
77
39
  認証されますとアカウントが作成されます。
78
40
 
79
-
80
-
81
41
  なお、申し込みから24時間が過ぎますと無効になりますので、ご了承ください。
82
-
83
42
  _HTML_
84
43
 
85
-
86
-
87
44
  &SENDMAIL ;
88
45
 
89
-
90
-
91
46
  $html .= <<'_HTLM_' ;
92
-
93
47
  <h2>申込いただき有り難うございます</h2>
94
-
95
48
  <p>確認のメールを送信いたしました。<br />
96
-
97
49
  メール到着までしばらくお待ちください。<br /><br />
98
-
99
50
  メールが到着しましたらメールにあるアドレスにアクセスし、認証作業を続けてください。<br />
100
-
101
- <a href='http://www.creaplus.co.jp/card/'>
51
+ <a href='http://www./card/'>
102
-
103
52
  <img src='html_imgs/link_top.gif' alt='トップページへ戻る'></a>
104
-
105
53
  </p>
106
-
107
54
  </div>
108
-
109
55
  _HTLM_
110
56
 
111
-
112
-
113
57
  &page_Print ;
114
-
115
58
  exit ;
116
59
 
117
-
118
-
119
- }
60
+ }
120
-
121
-
122
61
 
123
62
  ```
124
63
 
125
-
126
-
127
64
  ```perl
128
-
129
65
  #shop_util.pl
130
66
 
131
-
132
-
133
67
  Usage:
134
-
135
68
  require './md5.pl';
136
-
137
69
  require './jcode.pl';
138
-
139
70
  #require 'C:\inetpub\wwwroot\card\md5.pl';
140
-
141
71
  #require 'C:\inetpub\wwwroot\card\jcode.pl';
142
72
 
143
-
144
-
145
73
  $_cookie_name = 'meisi' ;
146
-
147
74
  $_countFile = 'count.dat' ;
148
-
149
75
  $USERS_DIR = '/home/.sites/66/site39/shop_users/' ;
150
-
151
76
  #$USERS_DIR = 'C:\inetpub\wwwroot\card\users/' ;
152
77
 
153
-
154
-
155
78
  $PARTS_DIR = '/home/.sites/42/site103/web/card/parts/' ;
156
-
157
79
  #$PARTS_DIR = 'C:\inetpub\wwwroot\card\parts/' ;
158
80
 
159
-
160
-
161
81
  #######################################################
162
-
163
82
  # メールアドレスのチェック==============================
164
-
165
83
  sub email_check {
166
-
167
84
  $error_flg = 0; # 初期化
168
-
169
85
  local($allmail) = @_[0] ; # 初期化
170
-
171
86
  #↓@_[0]全体を調べて@がない/2つ以上あるとエラー
172
-
173
87
  # $positionは@の位置、$statusは@の数
174
-
175
88
  local($position,$status) = 0;
176
-
177
89
  while ( ($position = index($allmail , "@" , $position)) > 0 ){
178
-
179
90
  $status ++;
180
-
181
91
  $position ++;
182
-
183
92
  }
184
-
185
93
  if ($status != 1){ # 1でなければ
186
-
187
94
  $error .= "メールアドレスにエラーがあります。<br>\n";
188
-
189
95
  $error_flg = 1 ;
190
-
191
96
  } else { # @がひとつなら
192
-
193
97
  @domain = split(/@/,$allmail); # @で分解
194
-
195
98
  # 前半部のチェック
196
-
197
99
  # ↓中を調べて英文字と数字、_、ピリオド、-以外のものがあると
198
-
199
100
  # ↓$error_flgに1が入る。
200
-
201
101
  $error_flg = ( @domain[0] =~ /[^a-zA-Z0-9\_.\-]/ ) ; # これ以外は入力できない
202
-
203
102
  if ($error_flg == 1) {$error_flg2 = 1;} # エラーを取っておく
204
-
205
103
  # ドメインのチェック
206
-
207
104
  # ↓中を調べて英文字と数字、ピリオド、-以外のものがあると
208
-
209
105
  # ↓$error_flgに1が入る。
210
-
211
106
  $error_flg = ( @domain[1] =~ /[^a-zA-Z0-9.\-]/ ) ; # これ以外は入力できない
212
-
213
107
  if ($error_flg == 1) {$error_flg2 = 1;} # エラーを取っておく
214
-
215
108
  if ($error_flg2 == 1) { # 前半・ドメインのどちらかでエラー
216
-
217
109
  $error .= "メールアドレスは半角英数字で入力してください。<br>\n";
218
-
219
110
  }
220
-
221
111
  }
222
-
223
- }
112
+ }
224
-
225
-
226
-
227
-
228
113
 
229
114
 
230
115
 
231
116
  ########################################################
232
117
 
233
-
234
-
235
118
  ##############################################################################3
236
119
 
237
-
238
-
239
- # ------------------------------------------------------- #
120
+ # ------------------------------------------------------- #
240
-
241
- #
121
+ #
242
-
243
122
  # SMTPメール送信サンプル
244
-
245
- #
123
+ #
246
-
247
- # ------------------------------------------------------- #
124
+ # ------------------------------------------------------- #
248
-
249
125
  # 【 Program name 】
250
-
251
126
  # smtp.pl
252
-
253
- # ------------------------------------------------------- #
127
+ # ------------------------------------------------------- #
254
-
255
128
  # 【 更新履歴 】
256
-
257
129
  #   2001/5/7 - 作成
258
-
259
- # ------------------------------------------------------- #
130
+ # ------------------------------------------------------- #
260
-
261
- #
131
+ #
262
-
263
132
  # ソケットモジュ−ルの輸入
264
-
265
- #
133
+ #
266
-
267
134
  use Socket;
268
135
 
269
136
 
270
-
271
-
272
-
273
137
  sub SENDMAIL{
274
138
 
275
-
276
-
277
139
  $ResultCode = 0 ;
278
-
279
- # ------------------------------------------------------- #
140
+ # ------------------------------------------------------- #
280
-
281
141
  # 接続情報の設定
282
-
283
- # ------------------------------------------------------- #
142
+ # ------------------------------------------------------- #
284
-
285
- #
143
+ #
286
-
287
144
  # SMTPサーバ名、又はIPアドレス
288
-
289
- #
145
+ #
290
-
291
- $server = 'mail.creaplus.co.jp' ;
146
+ $server = 'mail.' ;
292
-
293
-
294
-
147
+
295
- #
148
+ #
296
-
297
149
  # 文字コード変換ライブラリの使用
298
-
299
- #
150
+ #
300
-
301
151
  require './jcode.pl';
302
152
 
303
153
 
304
-
305
-
306
-
307
- # ------------------------------------------------------- #
154
+ # ------------------------------------------------------- #
308
-
309
155
  # ヘッダ、データ部の作成
310
-
311
- # ------------------------------------------------------- #
156
+ # ------------------------------------------------------- #
312
-
313
-
314
157
 
315
158
  $send_data = 'X-Mailer: SMTP Samle' . "\n";
316
-
317
159
  $send_data .= 'MIME-Version: 1.0' . "\n";
318
-
319
160
  $send_data .= 'Content-Type: text/plain; charset=iso-2022-jp' . "\n";
320
-
321
161
  $send_data .= 'From: '. $from . '<'. $from .'>' . "\n";
322
-
323
162
  $send_data .= 'To: '. $to . "\n";
324
-
325
163
  $send_data .= 'Bcc: '. $BCC . "\n";
326
-
327
164
  $send_data .= 'Subject: ' . $subject . "\n";
328
-
329
165
  $send_data .= "\n";
330
-
331
166
  $send_data .= $data;
332
167
 
333
-
334
-
335
- # ------------------------------------------------------- #
168
+ # ------------------------------------------------------- #
336
-
337
169
  # SOCKETの作成
338
-
339
- # ------------------------------------------------------- #
170
+ # ------------------------------------------------------- #
340
-
341
171
  # PORT番号を取得します
342
-
343
172
  $port = getservbyname('smtp','tcp');
344
-
345
173
  # PORT、IPで構造体を作成する
346
-
347
174
  $struct = sockaddr_in($port,inet_aton($server));
348
-
349
175
  # ソケットの生成
350
-
351
176
  socket(SH, PF_INET, SOCK_STREAM, 0)
352
-
353
177
  || return("ソケットの生成失敗 $!") ;
354
-
355
178
  # 接続
356
-
357
179
  connect(SH, $struct )
358
-
359
180
  || return("接続失敗 $!") ;
360
-
361
181
  # ソケットのバッファリングは行わない
362
-
363
182
  select(SH); $| = 1; select(STDOUT);
364
-
365
183
  $respons = <SH> ;
366
184
 
367
-
368
-
369
185
  unless($respons =~ /^220/) {
370
-
371
186
  close(SH); return("接続失敗 $!") ;
372
-
373
- }
187
+ }
374
-
375
-
376
-
188
+
377
- # ------------------------------------------------------- #
189
+ # ------------------------------------------------------- #
378
-
379
190
  # コマンドの送信
380
-
381
- # ------------------------------------------------------- #
191
+ # ------------------------------------------------------- #
382
-
383
192
  # -------- HELOコマンドの送信とレスポンスの確認 --------- #
384
-
385
- # コマンドの作成、送信
193
+ # コマンドの作成、送信
386
-
387
194
  $command = "HELO $server\n";
388
-
389
195
  print SH $command ;
390
-
391
- # レスポンスの受信、確認
196
+ # レスポンスの受信、確認
392
-
393
- $respons = <SH> ;
197
+ $respons = <SH> ;
394
-
395
- &decode($respons) ;
198
+ &decode($respons) ;
396
-
397
199
  # レスポンスの確認
398
-
399
200
  unless($respons =~ /^250/){
400
-
401
201
  close(SH); return("HELOコマンド失敗 $!") ;
402
-
403
- }
202
+ }
404
-
405
-
406
203
 
407
204
  # -------- MAILコマンドの送信とレスポンスの確認 --------- #
408
-
409
- # コマンドの作成、送信
205
+ # コマンドの作成、送信
410
-
411
206
  $command = "MAIL FROM:$from\n";
412
-
413
207
  print SH $command ;
414
-
415
- # レスポンスの受信、確認
208
+ # レスポンスの受信、確認
416
-
417
- $respons = <SH> ;
209
+ $respons = <SH> ;
418
-
419
- &decode($respons) ;
210
+ &decode($respons) ;
420
-
421
-
422
211
 
423
212
  unless($respons =~ /^250/){
424
-
425
- print SH "RSET\n"; close(SH);
213
+ print SH "RSET\n"; close(SH);
426
-
427
214
  return("MAILコマンド失敗 $!") ;
428
-
429
- }
215
+ }
430
-
431
-
432
216
 
433
217
  # -------- RCPTコマンドの送信とレスポンスの確認 --------- #
434
-
435
- # コマンドの作成、送信
218
+ # コマンドの作成、送信
436
-
437
219
  $command = "RCPT TO:$to\n";
438
-
439
- print SH $command ;
220
+ print SH $command ;
440
-
441
- # レスポンスの受信、確認
221
+ # レスポンスの受信、確認
442
-
443
- $respons = <SH> ;
222
+ $respons = <SH> ;
444
-
445
- &decode($respons) ;
223
+ &decode($respons) ;
446
-
447
-
448
224
 
449
225
  unless($respons =~ /^25[0|1]/){
450
-
451
- print SH "RSET\n"; close(SH);
226
+ print SH "RSET\n"; close(SH);
452
-
453
227
  return("RCPTコマンド失敗 $!") ;
454
-
455
- }
228
+ }
456
-
457
-
458
229
 
459
230
  # -------- DATAコマンドの送信とレスポンスの確認 --------- #
460
-
461
- # コマンドの作成、送信
231
+ # コマンドの作成、送信
462
-
463
232
  $command = "DATA\n";
464
-
465
- print SH $command ;
233
+ print SH $command ;
466
-
467
- # レスポンスの受信、確認
234
+ # レスポンスの受信、確認
468
-
469
- $respons = <SH> ;
235
+ $respons = <SH> ;
470
-
471
- &decode($respons) ;
236
+ &decode($respons) ;
472
-
473
-
474
237
 
475
238
  unless($respons =~ /^354/){
476
-
477
- print SH "RSET\n"; close(SH);
239
+ print SH "RSET\n"; close(SH);
478
-
479
240
  return("DATAコマンド失敗 $!") ;
480
-
481
- }
241
+ }
482
-
483
-
484
242
 
485
243
  # -------- ヘッダ、本文の送信とレスポンスの確認 --------- #
486
-
487
244
  # 文字コードの変換
488
-
489
245
  &jcode'convert(*send_data,'jis');
490
-
491
- # コマンドの作成、送信
246
+ # コマンドの作成、送信
492
-
493
247
  $command = "$send_data\n.\n";
494
-
495
- print SH $command ;
248
+ print SH $command ;
496
-
497
- # レスポンスの受信、確認
249
+ # レスポンスの受信、確認
498
-
499
- $respons = <SH> ;
250
+ $respons = <SH> ;
500
-
501
- &decode($respons) ;
251
+ &decode($respons) ;
502
-
503
-
504
252
 
505
253
  unless($respons =~ /^250/){
506
-
507
- print SH "RSET\n"; close(SH);
254
+ print SH "RSET\n"; close(SH);
508
-
509
255
  return("本文、ヘッダ部送信失敗 $!") ;
510
-
511
- }
256
+ }
512
-
513
257
  # --------QUITコマンドの送信 -------- #
514
-
515
258
  # コマンドの作成、送信
516
-
517
259
  $command = "QUIT\n";
518
-
519
- print SH $command ;
260
+ print SH $command ;
520
-
521
261
  # --------切断 -------- #
522
-
523
262
  close(SH); select(STDOUT);
524
-
525
263
 
526
-
527
264
  $ResultCode = 1 ;
528
-
529
265
  return "MAILは正常に送信されました。\n";
530
266
 
531
-
532
-
533
- }
267
+ }
534
-
535
-
536
268
 
537
269
  # --------------------
538
-
539
270
  # 改行コード変換
540
-
541
271
  # --------------------
542
-
543
272
  sub decode{
544
-
545
273
 
546
-
547
274
  my $inf = $_[0];
548
-
549
275
  $$inf =~ s/\x0D\x0A|\x0D|\x0A/\n/g;
550
276
 
551
-
552
-
553
- }
277
+ }
554
-
555
-
556
278
 
557
279
  ```
558
280
 
559
-
560
-
561
281
  ### 試したこと
562
282
 
563
-
564
-
565
283
  まずはタイムアウトが起きるという問題が発生したため
566
-
567
284
  「$bits128 = &md5::convert("$FORM{'P1'}$FORM{'P2'}$FORM{'P3'}$FORM{'P4'}");」の一文を非表示にしました。
568
-
569
285
  タイムアウトは改善されましたが、確認メールが届きません。
570
-
571
286
  こちらのMd5に変換する行に問題があるのか、確認メールを送るためのプログラムに問題があるのか、他に問題があるのかわからず
572
-
573
287
  問題個所の特定に当たりをつけていっているところです。
574
288
 
575
-
576
-
577
289
  迷惑メールフォルダにも届いていませんでした。
578
-
579
- アドレスを「shop@creaplus.co.jp」から、所有の「k.iitsuka@creaplus.co.jp」に変更してみましたが
290
+ アドレスを「shop@」から、所有の「k.iitsuka@」に変更してみましたが
580
-
581
291
  変更後のアドレスへも届いていなかったので、確認メールも届かなかったのだと思います。
582
292
 
583
-
584
-
585
- ユーザー登録のアドレスを「k.iitsuka@creaplus.co.jp」に設定すると、なぜか確認メールが届くようになりました。
293
+ ユーザー登録のアドレスを「k.iitsuka@」に設定すると、なぜか確認メールが届くようになりました。
586
-
587
- @以下が「creaplus.co.jp」のものだと届くようです。しかしそれ以外は届きません。
294
+ @以下が「」のものだと届くようです。しかしそれ以外は届きません。
588
-
589
-
590
295
 
591
296
  つたない文章で申し訳ございませんが、何卒よろしくお願いいたします。

7

書式の改善

2020/07/07 07:47

投稿

soraatori
soraatori

スコア55

test CHANGED
File without changes
test CHANGED
@@ -584,7 +584,7 @@
584
584
 
585
585
  ユーザー登録のアドレスを「k.iitsuka@creaplus.co.jp」に設定すると、なぜか確認メールが届くようになりました。
586
586
 
587
- しかしそれ以外は届きません。
587
+ @以下が「creaplus.co.jp」のものだと届くようです。しかしそれ以外は届きません。
588
588
 
589
589
 
590
590
 

6

書式の改善

2020/07/07 07:47

投稿

soraatori
soraatori

スコア55

test CHANGED
File without changes
test CHANGED
@@ -34,10 +34,6 @@
34
34
 
35
35
 
36
36
 
37
-
38
-
39
-
40
-
41
37
  # $bits128 = &md5::convert("$FORM{'P1'}$FORM{'P2'}$FORM{'P3'}$FORM{'P4'}");#
42
38
 
43
39
  # $MD5PASS = sprintf("%08x%08x%08x%08x", unpack('NNNN', $bits128)); #
@@ -72,8 +68,6 @@
72
68
 
73
69
 
74
70
 
75
-
76
-
77
71
  このアドレスをクリックするとページが開きます。
78
72
 
79
73
  本人確認のため、開いたページにパスワードを入力してください。
@@ -90,12 +84,6 @@
90
84
 
91
85
 
92
86
 
93
-
94
-
95
-
96
-
97
-
98
-
99
87
  &SENDMAIL ;
100
88
 
101
89
 
@@ -122,8 +110,6 @@
122
110
 
123
111
 
124
112
 
125
-
126
-
127
113
  &page_Print ;
128
114
 
129
115
  exit ;
@@ -138,59 +124,101 @@
138
124
 
139
125
 
140
126
 
141
- ```cgi
142
-
143
- #mail_sender.cgi
144
-
145
-
146
-
147
- #!/usr/bin/perl
148
-
149
-
150
-
151
- require "jcode.pl";
152
-
153
- require "perl-lib.pl";
154
-
155
-
156
-
157
- readparts('FORM', '<>=', 'sjis') ;
158
-
159
-
160
-
161
- $htmlbody = '<html>' ;
162
-
163
-
164
-
165
-
166
-
167
- if($FORM{'act'} eq 'a'){
168
-
169
- &form_A ;
170
-
171
- }elsif($FORM{'act'} eq 'b'){
172
-
173
- &form_B ;
174
-
175
- }elsif($FORM{'act'} eq 'b2'){
176
-
177
- &form_B2 ;
178
-
179
- }elsif($FORM{'act'} eq 'c'){
180
-
181
- &form_C ;
182
-
183
- }elsif($FORM{'act'} eq 'd'){
184
-
185
- &form_D ;
186
-
187
- }elsif($FORM{'act'} eq 'd2'){
188
-
189
- &form_D2 ;
190
-
191
- }else{
192
-
193
- &form_A ;
127
+ ```perl
128
+
129
+ #shop_util.pl
130
+
131
+
132
+
133
+ Usage:
134
+
135
+ require './md5.pl';
136
+
137
+ require './jcode.pl';
138
+
139
+ #require 'C:\inetpub\wwwroot\card\md5.pl';
140
+
141
+ #require 'C:\inetpub\wwwroot\card\jcode.pl';
142
+
143
+
144
+
145
+ $_cookie_name = 'meisi' ;
146
+
147
+ $_countFile = 'count.dat' ;
148
+
149
+ $USERS_DIR = '/home/.sites/66/site39/shop_users/' ;
150
+
151
+ #$USERS_DIR = 'C:\inetpub\wwwroot\card\users/' ;
152
+
153
+
154
+
155
+ $PARTS_DIR = '/home/.sites/42/site103/web/card/parts/' ;
156
+
157
+ #$PARTS_DIR = 'C:\inetpub\wwwroot\card\parts/' ;
158
+
159
+
160
+
161
+ #######################################################
162
+
163
+ # メールアドレスのチェック==============================
164
+
165
+ sub email_check {
166
+
167
+ $error_flg = 0; # 初期化
168
+
169
+ local($allmail) = @_[0] ; # 初期化
170
+
171
+ #↓@_[0]全体を調べて@がない/2つ以上あるとエラー
172
+
173
+ # $positionは@の位置、$statusは@の数
174
+
175
+ local($position,$status) = 0;
176
+
177
+ while ( ($position = index($allmail , "@" , $position)) > 0 ){
178
+
179
+ $status ++;
180
+
181
+ $position ++;
182
+
183
+ }
184
+
185
+ if ($status != 1){ # 1でなければ
186
+
187
+ $error .= "メールアドレスにエラーがあります。<br>\n";
188
+
189
+ $error_flg = 1 ;
190
+
191
+ } else { # @がひとつなら
192
+
193
+ @domain = split(/@/,$allmail); # @で分解
194
+
195
+ # 前半部のチェック
196
+
197
+ # ↓中を調べて英文字と数字、_、ピリオド、-以外のものがあると
198
+
199
+ # ↓$error_flgに1が入る。
200
+
201
+ $error_flg = ( @domain[0] =~ /[^a-zA-Z0-9\_.\-]/ ) ; # これ以外は入力できない
202
+
203
+ if ($error_flg == 1) {$error_flg2 = 1;} # エラーを取っておく
204
+
205
+ # ドメインのチェック
206
+
207
+ # ↓中を調べて英文字と数字、ピリオド、-以外のものがあると
208
+
209
+ # ↓$error_flgに1が入る。
210
+
211
+ $error_flg = ( @domain[1] =~ /[^a-zA-Z0-9.\-]/ ) ; # これ以外は入力できない
212
+
213
+ if ($error_flg == 1) {$error_flg2 = 1;} # エラーを取っておく
214
+
215
+ if ($error_flg2 == 1) { # 前半・ドメインのどちらかでエラー
216
+
217
+ $error .= "メールアドレスは半角英数字で入力してください。<br>\n";
218
+
219
+ }
220
+
221
+ }
194
222
 
195
223
  }
196
224
 
@@ -198,47 +226,307 @@
198
226
 
199
227
 
200
228
 
201
- $htmlbody .= '</html>' ;
202
-
203
-
204
-
205
- print "Content-type: text/html; charset=x-sjis;Pragma: no-cache\n\n" ;
206
-
207
- print $htmlbody ;
208
-
209
-
210
-
211
-
212
-
213
-
214
-
215
- exit ;
216
-
217
-
218
-
219
- #------------------------------------------------
220
-
221
- # action
222
-
223
- #------------------------------------------------
224
-
225
-
226
-
227
- sub form_A {
228
-
229
- $htmlbody .= 'A----A' ;
230
-
231
- $htmlbody .= '<form action="mail_sender.cgi">' ;
232
-
233
- $htmlbody .= '' ;
234
-
235
- $htmlbody .= '' ;
236
-
237
- $htmlbody .= '' ;
238
-
239
- $htmlbody .= '' ;
240
-
241
- $htmlbody .= '</form>' ;
229
+
230
+
231
+ ########################################################
232
+
233
+
234
+
235
+ ##############################################################################3
236
+
237
+
238
+
239
+ # ------------------------------------------------------- #
240
+
241
+ #
242
+
243
+ # SMTPメール送信サンプル
244
+
245
+ #
246
+
247
+ # ------------------------------------------------------- #
248
+
249
+ # 【 Program name
250
+
251
+ # smtp.pl
252
+
253
+ # ------------------------------------------------------- #
254
+
255
+ # 更新履歴 】
256
+
257
+ #   2001/5/7 - 作成
258
+
259
+ # ------------------------------------------------------- #
260
+
261
+ #
262
+
263
+ # ソケットモジュ−ルの輸入
264
+
265
+ #
266
+
267
+ use Socket;
268
+
269
+
270
+
271
+
272
+
273
+ sub SENDMAIL{
274
+
275
+
276
+
277
+ $ResultCode = 0 ;
278
+
279
+ # ------------------------------------------------------- #
280
+
281
+ # 接続情報の設定
282
+
283
+ # ------------------------------------------------------- #
284
+
285
+ #
286
+
287
+ # SMTPサーバ名、又はIPアドレス
288
+
289
+ #
290
+
291
+ $server = 'mail.creaplus.co.jp' ;
292
+
293
+
294
+
295
+ #
296
+
297
+ # 文字コード変換ライブラリの使用
298
+
299
+ #
300
+
301
+ require './jcode.pl';
302
+
303
+
304
+
305
+
306
+
307
+ # ------------------------------------------------------- #
308
+
309
+ # ヘッダ、データ部の作成
310
+
311
+ # ------------------------------------------------------- #
312
+
313
+
314
+
315
+ $send_data = 'X-Mailer: SMTP Samle' . "\n";
316
+
317
+ $send_data .= 'MIME-Version: 1.0' . "\n";
318
+
319
+ $send_data .= 'Content-Type: text/plain; charset=iso-2022-jp' . "\n";
320
+
321
+ $send_data .= 'From: '. $from . '<'. $from .'>' . "\n";
322
+
323
+ $send_data .= 'To: '. $to . "\n";
324
+
325
+ $send_data .= 'Bcc: '. $BCC . "\n";
326
+
327
+ $send_data .= 'Subject: ' . $subject . "\n";
328
+
329
+ $send_data .= "\n";
330
+
331
+ $send_data .= $data;
332
+
333
+
334
+
335
+ # ------------------------------------------------------- #
336
+
337
+ # SOCKETの作成
338
+
339
+ # ------------------------------------------------------- #
340
+
341
+ # PORT番号を取得します
342
+
343
+ $port = getservbyname('smtp','tcp');
344
+
345
+ # PORT、IPで構造体を作成する
346
+
347
+ $struct = sockaddr_in($port,inet_aton($server));
348
+
349
+ # ソケットの生成
350
+
351
+ socket(SH, PF_INET, SOCK_STREAM, 0)
352
+
353
+ || return("ソケットの生成失敗 $!") ;
354
+
355
+ # 接続
356
+
357
+ connect(SH, $struct )
358
+
359
+ || return("接続失敗 $!") ;
360
+
361
+ # ソケットのバッファリングは行わない
362
+
363
+ select(SH); $| = 1; select(STDOUT);
364
+
365
+ $respons = <SH> ;
366
+
367
+
368
+
369
+ unless($respons =~ /^220/) {
370
+
371
+ close(SH); return("接続失敗 $!") ;
372
+
373
+ }
374
+
375
+
376
+
377
+ # ------------------------------------------------------- #
378
+
379
+ # コマンドの送信
380
+
381
+ # ------------------------------------------------------- #
382
+
383
+ # -------- HELOコマンドの送信とレスポンスの確認 --------- #
384
+
385
+ # コマンドの作成、送信
386
+
387
+ $command = "HELO $server\n";
388
+
389
+ print SH $command ;
390
+
391
+ # レスポンスの受信、確認
392
+
393
+ $respons = <SH> ;
394
+
395
+ &decode($respons) ;
396
+
397
+ # レスポンスの確認
398
+
399
+ unless($respons =~ /^250/){
400
+
401
+ close(SH); return("HELOコマンド失敗 $!") ;
402
+
403
+ }
404
+
405
+
406
+
407
+ # -------- MAILコマンドの送信とレスポンスの確認 --------- #
408
+
409
+ # コマンドの作成、送信
410
+
411
+ $command = "MAIL FROM:$from\n";
412
+
413
+ print SH $command ;
414
+
415
+ # レスポンスの受信、確認
416
+
417
+ $respons = <SH> ;
418
+
419
+ &decode($respons) ;
420
+
421
+
422
+
423
+ unless($respons =~ /^250/){
424
+
425
+ print SH "RSET\n"; close(SH);
426
+
427
+ return("MAILコマンド失敗 $!") ;
428
+
429
+ }
430
+
431
+
432
+
433
+ # -------- RCPTコマンドの送信とレスポンスの確認 --------- #
434
+
435
+ # コマンドの作成、送信
436
+
437
+ $command = "RCPT TO:$to\n";
438
+
439
+ print SH $command ;
440
+
441
+ # レスポンスの受信、確認
442
+
443
+ $respons = <SH> ;
444
+
445
+ &decode($respons) ;
446
+
447
+
448
+
449
+ unless($respons =~ /^25[0|1]/){
450
+
451
+ print SH "RSET\n"; close(SH);
452
+
453
+ return("RCPTコマンド失敗 $!") ;
454
+
455
+ }
456
+
457
+
458
+
459
+ # -------- DATAコマンドの送信とレスポンスの確認 --------- #
460
+
461
+ # コマンドの作成、送信
462
+
463
+ $command = "DATA\n";
464
+
465
+ print SH $command ;
466
+
467
+ # レスポンスの受信、確認
468
+
469
+ $respons = <SH> ;
470
+
471
+ &decode($respons) ;
472
+
473
+
474
+
475
+ unless($respons =~ /^354/){
476
+
477
+ print SH "RSET\n"; close(SH);
478
+
479
+ return("DATAコマンド失敗 $!") ;
480
+
481
+ }
482
+
483
+
484
+
485
+ # -------- ヘッダ、本文の送信とレスポンスの確認 --------- #
486
+
487
+ # 文字コードの変換
488
+
489
+ &jcode'convert(*send_data,'jis');
490
+
491
+ # コマンドの作成、送信
492
+
493
+ $command = "$send_data\n.\n";
494
+
495
+ print SH $command ;
496
+
497
+ # レスポンスの受信、確認
498
+
499
+ $respons = <SH> ;
500
+
501
+ &decode($respons) ;
502
+
503
+
504
+
505
+ unless($respons =~ /^250/){
506
+
507
+ print SH "RSET\n"; close(SH);
508
+
509
+ return("本文、ヘッダ部送信失敗 $!") ;
510
+
511
+ }
512
+
513
+ # --------QUITコマンドの送信 -------- #
514
+
515
+ # コマンドの作成、送信
516
+
517
+ $command = "QUIT\n";
518
+
519
+ print SH $command ;
520
+
521
+ # --------切断 -------- #
522
+
523
+ close(SH); select(STDOUT);
524
+
525
+
526
+
527
+ $ResultCode = 1 ;
528
+
529
+ return "MAILは正常に送信されました。\n";
242
530
 
243
531
 
244
532
 
@@ -246,462 +534,30 @@
246
534
 
247
535
 
248
536
 
249
- #------------------------------------------------
537
+ # --------------------
538
+
250
-
539
+ # 改行コード変換
540
+
541
+ # --------------------
542
+
251
- sub form_B {
543
+ sub decode{
544
+
545
+
546
+
252
-
547
+ my $inf = $_[0];
548
+
253
- $htmlbody .= 'B----B' ;
549
+ $$inf =~ s/\x0D\x0A|\x0D|\x0A/\n/g;
254
-
255
- print "Location:http://localhost/test/mail_sender.cgi?act=b2\n\n";
550
+
256
-
257
- exit ;
551
+
258
552
 
259
553
  }
260
554
 
261
555
 
262
556
 
263
- 省略
264
-
265
-
266
-
267
557
  ```
268
558
 
269
559
 
270
560
 
271
- ```perl
272
-
273
- #shop_util.pl
274
-
275
-
276
-
277
- Usage:
278
-
279
- require './md5.pl';
280
-
281
- require './jcode.pl';
282
-
283
- #require 'C:\inetpub\wwwroot\card\md5.pl';
284
-
285
- #require 'C:\inetpub\wwwroot\card\jcode.pl';
286
-
287
-
288
-
289
- $_cookie_name = 'meisi' ;
290
-
291
- $_countFile = 'count.dat' ;
292
-
293
- $USERS_DIR = '/home/.sites/66/site39/shop_users/' ;
294
-
295
- #$USERS_DIR = 'C:\inetpub\wwwroot\card\users/' ;
296
-
297
-
298
-
299
- $PARTS_DIR = '/home/.sites/42/site103/web/card/parts/' ;
300
-
301
- #$PARTS_DIR = 'C:\inetpub\wwwroot\card\parts/' ;
302
-
303
-
304
-
305
- #######################################################
306
-
307
- # メールアドレスのチェック==============================
308
-
309
- sub email_check {
310
-
311
- $error_flg = 0; # 初期化
312
-
313
- local($allmail) = @_[0] ; # 初期化
314
-
315
- #↓@_[0]全体を調べて@がない/2つ以上あるとエラー
316
-
317
- # $positionは@の位置、$statusは@の数
318
-
319
- local($position,$status) = 0;
320
-
321
- while ( ($position = index($allmail , "@" , $position)) > 0 ){
322
-
323
- $status ++;
324
-
325
- $position ++;
326
-
327
- }
328
-
329
- if ($status != 1){ # 1でなければ
330
-
331
- $error .= "メールアドレスにエラーがあります。<br>\n";
332
-
333
- $error_flg = 1 ;
334
-
335
- } else { # @がひとつなら
336
-
337
- @domain = split(/@/,$allmail); # @で分解
338
-
339
- # 前半部のチェック
340
-
341
- # ↓中を調べて英文字と数字、_、ピリオド、-以外のものがあると
342
-
343
- # ↓$error_flgに1が入る。
344
-
345
- $error_flg = ( @domain[0] =~ /[^a-zA-Z0-9\_.\-]/ ) ; # これ以外は入力できない
346
-
347
- if ($error_flg == 1) {$error_flg2 = 1;} # エラーを取っておく
348
-
349
- # ドメインのチェック
350
-
351
- # ↓中を調べて英文字と数字、ピリオド、-以外のものがあると
352
-
353
- # ↓$error_flgに1が入る。
354
-
355
- $error_flg = ( @domain[1] =~ /[^a-zA-Z0-9.\-]/ ) ; # これ以外は入力できない
356
-
357
- if ($error_flg == 1) {$error_flg2 = 1;} # エラーを取っておく
358
-
359
- if ($error_flg2 == 1) { # 前半・ドメインのどちらかでエラー
360
-
361
- $error .= "メールアドレスは半角英数字で入力してください。<br>\n";
362
-
363
- }
364
-
365
- }
366
-
367
- }
368
-
369
-
370
-
371
-
372
-
373
-
374
-
375
- ########################################################
376
-
377
-
378
-
379
- ##############################################################################3
380
-
381
-
382
-
383
- # ------------------------------------------------------- #
384
-
385
- #
386
-
387
- # SMTPメール送信サンプル
388
-
389
- #
390
-
391
- # ------------------------------------------------------- #
392
-
393
- # 【 Program name 】
394
-
395
- # smtp.pl
396
-
397
- # ------------------------------------------------------- #
398
-
399
- # 【 更新履歴 】
400
-
401
- #   2001/5/7 - 作成
402
-
403
- # ------------------------------------------------------- #
404
-
405
- #
406
-
407
- # ソケットモジュ−ルの輸入
408
-
409
- #
410
-
411
- use Socket;
412
-
413
-
414
-
415
-
416
-
417
- sub SENDMAIL{
418
-
419
-
420
-
421
- $ResultCode = 0 ;
422
-
423
- # ------------------------------------------------------- #
424
-
425
- # 接続情報の設定
426
-
427
- # ------------------------------------------------------- #
428
-
429
- #
430
-
431
- # SMTPサーバ名、又はIPアドレス
432
-
433
- #
434
-
435
- $server = 'mail.creaplus.co.jp' ;
436
-
437
-
438
-
439
- #
440
-
441
- # 文字コード変換ライブラリの使用
442
-
443
- #
444
-
445
- require './jcode.pl';
446
-
447
-
448
-
449
-
450
-
451
- # ------------------------------------------------------- #
452
-
453
- # ヘッダ、データ部の作成
454
-
455
- # ------------------------------------------------------- #
456
-
457
-
458
-
459
- $send_data = 'X-Mailer: SMTP Samle' . "\n";
460
-
461
- $send_data .= 'MIME-Version: 1.0' . "\n";
462
-
463
- $send_data .= 'Content-Type: text/plain; charset=iso-2022-jp' . "\n";
464
-
465
- $send_data .= 'From: '. $from . '<'. $from .'>' . "\n";
466
-
467
- $send_data .= 'To: '. $to . "\n";
468
-
469
- $send_data .= 'Bcc: '. $BCC . "\n";
470
-
471
- $send_data .= 'Subject: ' . $subject . "\n";
472
-
473
- $send_data .= "\n";
474
-
475
- $send_data .= $data;
476
-
477
-
478
-
479
- # ------------------------------------------------------- #
480
-
481
- # SOCKETの作成
482
-
483
- # ------------------------------------------------------- #
484
-
485
- # PORT番号を取得します
486
-
487
- $port = getservbyname('smtp','tcp');
488
-
489
- # PORT、IPで構造体を作成する
490
-
491
- $struct = sockaddr_in($port,inet_aton($server));
492
-
493
- # ソケットの生成
494
-
495
- socket(SH, PF_INET, SOCK_STREAM, 0)
496
-
497
- || return("ソケットの生成失敗 $!") ;
498
-
499
- # 接続
500
-
501
- connect(SH, $struct )
502
-
503
- || return("接続失敗 $!") ;
504
-
505
- # ソケットのバッファリングは行わない
506
-
507
- select(SH); $| = 1; select(STDOUT);
508
-
509
- $respons = <SH> ;
510
-
511
-
512
-
513
- unless($respons =~ /^220/) {
514
-
515
- close(SH); return("接続失敗 $!") ;
516
-
517
- }
518
-
519
-
520
-
521
- # ------------------------------------------------------- #
522
-
523
- # コマンドの送信
524
-
525
- # ------------------------------------------------------- #
526
-
527
- # -------- HELOコマンドの送信とレスポンスの確認 --------- #
528
-
529
- # コマンドの作成、送信
530
-
531
- $command = "HELO $server\n";
532
-
533
- print SH $command ;
534
-
535
- # レスポンスの受信、確認
536
-
537
- $respons = <SH> ;
538
-
539
- &decode($respons) ;
540
-
541
- # レスポンスの確認
542
-
543
- unless($respons =~ /^250/){
544
-
545
- close(SH); return("HELOコマンド失敗 $!") ;
546
-
547
- }
548
-
549
-
550
-
551
- # -------- MAILコマンドの送信とレスポンスの確認 --------- #
552
-
553
- # コマンドの作成、送信
554
-
555
- $command = "MAIL FROM:$from\n";
556
-
557
- print SH $command ;
558
-
559
- # レスポンスの受信、確認
560
-
561
- $respons = <SH> ;
562
-
563
- &decode($respons) ;
564
-
565
-
566
-
567
- unless($respons =~ /^250/){
568
-
569
- print SH "RSET\n"; close(SH);
570
-
571
- return("MAILコマンド失敗 $!") ;
572
-
573
- }
574
-
575
-
576
-
577
- # -------- RCPTコマンドの送信とレスポンスの確認 --------- #
578
-
579
- # コマンドの作成、送信
580
-
581
- $command = "RCPT TO:$to\n";
582
-
583
- print SH $command ;
584
-
585
- # レスポンスの受信、確認
586
-
587
- $respons = <SH> ;
588
-
589
- &decode($respons) ;
590
-
591
-
592
-
593
- unless($respons =~ /^25[0|1]/){
594
-
595
- print SH "RSET\n"; close(SH);
596
-
597
- return("RCPTコマンド失敗 $!") ;
598
-
599
- }
600
-
601
-
602
-
603
- # -------- DATAコマンドの送信とレスポンスの確認 --------- #
604
-
605
- # コマンドの作成、送信
606
-
607
- $command = "DATA\n";
608
-
609
- print SH $command ;
610
-
611
- # レスポンスの受信、確認
612
-
613
- $respons = <SH> ;
614
-
615
- &decode($respons) ;
616
-
617
-
618
-
619
- unless($respons =~ /^354/){
620
-
621
- print SH "RSET\n"; close(SH);
622
-
623
- return("DATAコマンド失敗 $!") ;
624
-
625
- }
626
-
627
-
628
-
629
- # -------- ヘッダ、本文の送信とレスポンスの確認 --------- #
630
-
631
- # 文字コードの変換
632
-
633
- &jcode'convert(*send_data,'jis');
634
-
635
- # コマンドの作成、送信
636
-
637
- $command = "$send_data\n.\n";
638
-
639
- print SH $command ;
640
-
641
- # レスポンスの受信、確認
642
-
643
- $respons = <SH> ;
644
-
645
- &decode($respons) ;
646
-
647
-
648
-
649
- unless($respons =~ /^250/){
650
-
651
- print SH "RSET\n"; close(SH);
652
-
653
- return("本文、ヘッダ部送信失敗 $!") ;
654
-
655
- }
656
-
657
- # --------QUITコマンドの送信 -------- #
658
-
659
- # コマンドの作成、送信
660
-
661
- $command = "QUIT\n";
662
-
663
- print SH $command ;
664
-
665
- # --------切断 -------- #
666
-
667
- close(SH); select(STDOUT);
668
-
669
-
670
-
671
- $ResultCode = 1 ;
672
-
673
- return "MAILは正常に送信されました。\n";
674
-
675
-
676
-
677
- }
678
-
679
-
680
-
681
- # --------------------
682
-
683
- # 改行コード変換
684
-
685
- # --------------------
686
-
687
- sub decode{
688
-
689
-
690
-
691
- my $inf = $_[0];
692
-
693
- $$inf =~ s/\x0D\x0A|\x0D|\x0A/\n/g;
694
-
695
-
696
-
697
- }
698
-
699
-
700
-
701
- ```
702
-
703
-
704
-
705
561
  ### 試したこと
706
562
 
707
563
 
@@ -726,4 +582,10 @@
726
582
 
727
583
 
728
584
 
585
+ ユーザー登録のアドレスを「k.iitsuka@creaplus.co.jp」に設定すると、なぜか確認メールが届くようになりました。
586
+
587
+ しかしそれ以外は届きません。
588
+
589
+
590
+
729
591
  つたない文章で申し訳ございませんが、何卒よろしくお願いいたします。

5

書式の改善

2020/07/07 07:28

投稿

soraatori
soraatori

スコア55

test CHANGED
File without changes
test CHANGED
@@ -8,11 +8,7 @@
8
8
 
9
9
  ドメイン名は実際に存在するものです。
10
10
 
11
- レンタルサーバーは他会社が所有されているため、わかりません。
12
-
13
- 最後尾の「確認のメールを送信いたしました。」までは走っているようですが、
14
-
15
- 「&SENDMAIL」より上部ルを送信するプログラムが正常動いいない模様です。
11
+ 「&SENDMAIL」のドはおそらく下記の「shop_util.pl」記載しあると思われます。
16
12
 
17
13
 
18
14
 
@@ -26,23 +22,97 @@
26
22
 
27
23
 
28
24
 
25
+ 省略
26
+
27
+
28
+
29
- sub Register_Proc {
29
+ $cookie{'P1'} = $FORM{'P1'} ;
30
+
30
-
31
+ $cookie{'P2'} = $FORM{'P2'} ;
32
+
31
-
33
+ $cookie{'P3'} = $FORM{'P3'} ;
34
+
35
+
36
+
37
+
38
+
39
+
40
+
32
-
41
+ # $bits128 = &md5::convert("$FORM{'P1'}$FORM{'P2'}$FORM{'P3'}$FORM{'P4'}");#
42
+
33
-
43
+ # $MD5PASS = sprintf("%08x%08x%08x%08x", unpack('NNNN', $bits128)); #
34
-
44
+
45
+
46
+
35
- &email_check($FORM{'P1'}) ;
47
+ $to = $FORM{'P1'} ;
48
+
36
-
49
+ $from = 'k.iitsuka@creaplus.co.jp' ;
50
+
51
+ $subject = '登録のご案内' ;
52
+
53
+ $data .=<<'_HTML_';
54
+
55
+ 申し込みいただき有り難うございます。
56
+
57
+ 登録の準備が出来ました。
58
+
37
- if($error_flg > 0){
59
+ 下記のアドレスにアクセスして登録してください。
60
+
61
+
62
+
38
-
63
+ _HTML_
64
+
65
+
66
+
67
+ $data .="http://www.creaplus.co.jp/card/regist.cgi?sd=$MD5PASS";
68
+
69
+
70
+
71
+ $data .=<<'_HTML_';
72
+
73
+
74
+
75
+
76
+
77
+ このアドレスをクリックするとページが開きます。
78
+
79
+ 本人確認のため、開いたページにパスワードを入力してください。
80
+
81
+
82
+
83
+ 認証されますとアカウントが作成されます。
84
+
85
+
86
+
87
+ なお、申し込みから24時間が過ぎますと無効になりますので、ご了承ください。
88
+
89
+ _HTML_
90
+
91
+
92
+
93
+
94
+
95
+
96
+
97
+
98
+
99
+ &SENDMAIL ;
100
+
101
+
102
+
39
- $html .= <<"_HTLM_" ;
103
+ $html .= <<'_HTLM_' ;
40
-
104
+
41
- <h2>メールアドレスが不明で</h2>
105
+ <h2>申込いただき有り難うございます</h2>
42
-
106
+
43
- <p>$error<br />
107
+ <p>確認のメールを送信いたしました。<br />
108
+
44
-
109
+ メール到着までしばらくお待ちください。<br /><br />
110
+
45
- 「戻」ボタンで戻り修正してください。
111
+ メールが到着しましたらメールにあアドレスにアクセスし認証作業を続けてください。<br />
112
+
113
+ <a href='http://www.creaplus.co.jp/card/'>
114
+
115
+ <img src='html_imgs/link_top.gif' alt='トップページへ戻る'></a>
46
116
 
47
117
  </p>
48
118
 
@@ -50,225 +120,577 @@
50
120
 
51
121
  _HTLM_
52
122
 
123
+
124
+
125
+
126
+
53
127
  &page_Print ;
54
128
 
55
129
  exit ;
56
130
 
131
+
132
+
57
133
  }
58
134
 
59
135
 
60
136
 
137
+ ```
138
+
139
+
140
+
141
+ ```cgi
142
+
143
+ #mail_sender.cgi
144
+
145
+
146
+
147
+ #!/usr/bin/perl
148
+
149
+
150
+
151
+ require "jcode.pl";
152
+
153
+ require "perl-lib.pl";
154
+
155
+
156
+
157
+ readparts('FORM', '<>=', 'sjis') ;
158
+
159
+
160
+
161
+ $htmlbody = '<html>' ;
162
+
163
+
164
+
165
+
166
+
61
- if($FORM{'P2'} eq ''){
167
+ if($FORM{'act'} eq 'a'){
168
+
62
-
169
+ &form_A ;
170
+
171
+ }elsif($FORM{'act'} eq 'b'){
172
+
173
+ &form_B ;
174
+
175
+ }elsif($FORM{'act'} eq 'b2'){
176
+
177
+ &form_B2 ;
178
+
179
+ }elsif($FORM{'act'} eq 'c'){
180
+
181
+ &form_C ;
182
+
183
+ }elsif($FORM{'act'} eq 'd'){
184
+
185
+ &form_D ;
186
+
187
+ }elsif($FORM{'act'} eq 'd2'){
188
+
189
+ &form_D2 ;
190
+
191
+ }else{
192
+
193
+ &form_A ;
194
+
195
+ }
196
+
197
+
198
+
199
+
200
+
63
- $html .= <<'_HTLM_' ;
201
+ $htmlbody .= '</html>' ;
64
-
202
+
203
+
204
+
65
- <h2>お名前が入力されていません</h2>
205
+ print "Content-type: text/html; charset=x-sjis;Pragma: no-cache\n\n" ;
66
-
67
- <p>お名前は必須です。<br />
206
+
68
-
69
- 「戻る」ボタンで戻り、修正してください。
70
-
71
- </p>
72
-
73
- </div>
74
-
75
- _HTLM_
76
-
77
- &page_Print ;
207
+ print $htmlbody ;
208
+
209
+
210
+
211
+
212
+
213
+
78
214
 
79
215
  exit ;
80
216
 
217
+
218
+
219
+ #------------------------------------------------
220
+
221
+ # action
222
+
223
+ #------------------------------------------------
224
+
225
+
226
+
227
+ sub form_A {
228
+
229
+ $htmlbody .= 'A----A' ;
230
+
231
+ $htmlbody .= '<form action="mail_sender.cgi">' ;
232
+
233
+ $htmlbody .= '' ;
234
+
235
+ $htmlbody .= '' ;
236
+
237
+ $htmlbody .= '' ;
238
+
239
+ $htmlbody .= '' ;
240
+
241
+ $htmlbody .= '</form>' ;
242
+
243
+
244
+
81
245
  }
82
246
 
83
247
 
84
248
 
85
- if($FORM{'P3'} eq ''){
249
+ #------------------------------------------------
250
+
86
-
251
+ sub form_B {
252
+
87
- $html .= <<'_HTLM_' ;
253
+ $htmlbody .= 'B----B' ;
88
-
254
+
89
- <h2>職員番号が入力されていません</h2>
255
+ print "Location:http://localhost/test/mail_sender.cgi?act=b2\n\n";
90
-
91
- <p>職員番号は必須です。<br />
256
+
92
-
93
- 「戻る」ボタンで戻り、修正してください。
94
-
95
- </p>
96
-
97
- </div>
98
-
99
- _HTLM_
100
-
101
- &page_Print ;
102
-
103
- exit ;
257
+ exit ;
104
258
 
105
259
  }
106
260
 
107
261
 
108
262
 
263
+ 省略
264
+
265
+
266
+
267
+ ```
268
+
269
+
270
+
271
+ ```perl
272
+
273
+ #shop_util.pl
274
+
275
+
276
+
277
+ Usage:
278
+
279
+ require './md5.pl';
280
+
109
- if($FORM{'P4'} eq ''){
281
+ require './jcode.pl';
282
+
110
-
283
+ #require 'C:\inetpub\wwwroot\card\md5.pl';
284
+
285
+ #require 'C:\inetpub\wwwroot\card\jcode.pl';
286
+
287
+
288
+
111
- $html .= <<'_HTLM_' ;
289
+ $_cookie_name = 'meisi' ;
112
-
113
- <h2>パスワードが入力されていません</h2>
290
+
114
-
115
- <p>パスワードは必須です。<br />
291
+ $_countFile = 'count.dat' ;
116
-
117
- 「戻る」ボタンで戻り、修正してください。
292
+
118
-
119
- </p>
293
+ $USERS_DIR = '/home/.sites/66/site39/shop_users/' ;
120
-
294
+
121
- </div>
295
+ #$USERS_DIR = 'C:\inetpub\wwwroot\card\users/' ;
296
+
297
+
298
+
122
-
299
+ $PARTS_DIR = '/home/.sites/42/site103/web/card/parts/' ;
300
+
301
+ #$PARTS_DIR = 'C:\inetpub\wwwroot\card\parts/' ;
302
+
303
+
304
+
305
+ #######################################################
306
+
123
- _HTLM_
307
+ # メールアドレスのチェック==============================
124
-
308
+
125
- &page_Print ;
309
+ sub email_check {
310
+
126
-
311
+ $error_flg = 0; # 初期化
312
+
313
+ local($allmail) = @_[0] ; # 初期化
314
+
315
+ #↓@_[0]全体を調べて@がない/2つ以上あるとエラー
316
+
317
+ # $positionは@の位置、$statusは@の数
318
+
319
+ local($position,$status) = 0;
320
+
321
+ while ( ($position = index($allmail , "@" , $position)) > 0 ){
322
+
127
- exit ;
323
+ $status ++;
324
+
325
+ $position ++;
326
+
327
+ }
328
+
329
+ if ($status != 1){ # 1でなければ
330
+
331
+ $error .= "メールアドレスにエラーがあります。<br>\n";
332
+
333
+ $error_flg = 1 ;
334
+
335
+ } else { # @がひとつなら
336
+
337
+ @domain = split(/@/,$allmail); # @で分解
338
+
339
+ # 前半部のチェック
340
+
341
+ # ↓中を調べて英文字と数字、_、ピリオド、-以外のものがあると
342
+
343
+ # ↓$error_flgに1が入る。
344
+
345
+ $error_flg = ( @domain[0] =~ /[^a-zA-Z0-9\_.\-]/ ) ; # これ以外は入力できない
346
+
347
+ if ($error_flg == 1) {$error_flg2 = 1;} # エラーを取っておく
348
+
349
+ # ドメインのチェック
350
+
351
+ # ↓中を調べて英文字と数字、ピリオド、-以外のものがあると
352
+
353
+ # ↓$error_flgに1が入る。
354
+
355
+ $error_flg = ( @domain[1] =~ /[^a-zA-Z0-9.\-]/ ) ; # これ以外は入力できない
356
+
357
+ if ($error_flg == 1) {$error_flg2 = 1;} # エラーを取っておく
358
+
359
+ if ($error_flg2 == 1) { # 前半・ドメインのどちらかでエラー
360
+
361
+ $error .= "メールアドレスは半角英数字で入力してください。<br>\n";
362
+
363
+ }
364
+
365
+ }
128
366
 
129
367
  }
130
368
 
131
369
 
132
370
 
133
- $File_Name_CHK = "$USERS_DIR$FORM{'P1'}!dt" ;
134
-
135
-
136
-
137
- if(-e "$File_Name_CHK"){
138
-
139
- $html .= <<'_HTLM_' ;
140
-
141
- <h2>既にご登録いただいております</h2>
142
-
143
- <p>入力されたメールアドレスは既に登録済みです。<br />
144
-
145
- パスワードをお忘れになられた場合はこちらをクリックしてください。<br />
146
-
147
- <a href='regist.cgi?mode=rm'>
148
-
149
- <img src='html_imgs/btn_fogp.gif' alt='パスワドを忘れた'></a>
150
-
151
- <br />
152
-
153
- <a href='http://www.creaplus.co.jp/card/'>
154
-
155
- <img src='html_imgs/link_top.gif' alt='トップページへ戻る'></a>
156
-
157
- </p>
158
-
159
- </div>
160
-
161
- _HTLM_
162
-
163
- &page_Print ;
164
-
165
- exit ;
371
+
372
+
373
+
374
+
375
+ ########################################################
376
+
377
+
378
+
379
+ ##############################################################################3
380
+
381
+
382
+
383
+ # ------------------------------------------------------- #
384
+
385
+ #
386
+
387
+ # SMTPメル送信サンプル
388
+
389
+ #
390
+
391
+ # ------------------------------------------------------- #
392
+
393
+ # 【 Program name 】
394
+
395
+ # smtp.pl
396
+
397
+ # ------------------------------------------------------- #
398
+
399
+ # 【 更新履歴 】
400
+
401
+ #   2001/5/7 - 作成
402
+
403
+ # ------------------------------------------------------- #
404
+
405
+ #
406
+
407
+ # ソケットモジュ−ルの輸入
408
+
409
+ #
410
+
411
+ use Socket;
412
+
413
+
414
+
415
+
416
+
417
+ sub SENDMAIL{
418
+
419
+
420
+
421
+ $ResultCode = 0 ;
422
+
423
+ # ------------------------------------------------------- #
424
+
425
+ # 接続情報の設定
426
+
427
+ # ------------------------------------------------------- #
428
+
429
+ #
430
+
431
+ # SMTPサーバ名、又はIPアドレス
432
+
433
+ #
434
+
435
+ $server = 'mail.creaplus.co.jp' ;
436
+
437
+
438
+
439
+ #
440
+
441
+ # 文字コード変換ライブラリの使用
442
+
443
+ #
444
+
445
+ require './jcode.pl';
446
+
447
+
448
+
449
+
450
+
451
+ # ------------------------------------------------------- #
452
+
453
+ # ヘッダ、データ部の作成
454
+
455
+ # ------------------------------------------------------- #
456
+
457
+
458
+
459
+ $send_data = 'X-Mailer: SMTP Samle' . "\n";
460
+
461
+ $send_data .= 'MIME-Version: 1.0' . "\n";
462
+
463
+ $send_data .= 'Content-Type: text/plain; charset=iso-2022-jp' . "\n";
464
+
465
+ $send_data .= 'From: '. $from . '<'. $from .'>' . "\n";
466
+
467
+ $send_data .= 'To: '. $to . "\n";
468
+
469
+ $send_data .= 'Bcc: '. $BCC . "\n";
470
+
471
+ $send_data .= 'Subject: ' . $subject . "\n";
472
+
473
+ $send_data .= "\n";
474
+
475
+ $send_data .= $data;
476
+
477
+
478
+
479
+ # ------------------------------------------------------- #
480
+
481
+ # SOCKETの作成
482
+
483
+ # ------------------------------------------------------- #
484
+
485
+ # PORT番号を取得します
486
+
487
+ $port = getservbyname('smtp','tcp');
488
+
489
+ # PORT、IPで構造体を作成する
490
+
491
+ $struct = sockaddr_in($port,inet_aton($server));
492
+
493
+ # ソケットの生成
494
+
495
+ socket(SH, PF_INET, SOCK_STREAM, 0)
496
+
497
+ || return("ソケットの生成失敗 $!") ;
498
+
499
+ # 接続
500
+
501
+ connect(SH, $struct )
502
+
503
+ || return("接続失敗 $!") ;
504
+
505
+ # ソケットのバッファリングは行わない
506
+
507
+ select(SH); $| = 1; select(STDOUT);
508
+
509
+ $respons = <SH> ;
510
+
511
+
512
+
513
+ unless($respons =~ /^220/) {
514
+
515
+ close(SH); return("接続失敗 $!") ;
516
+
517
+ }
518
+
519
+
520
+
521
+ # ------------------------------------------------------- #
522
+
523
+ # コマンドの送信
524
+
525
+ # ------------------------------------------------------- #
526
+
527
+ # -------- HELOコマンドの送信とレスポンスの確認 --------- #
528
+
529
+ # コマンドの作成、送信
530
+
531
+ $command = "HELO $server\n";
532
+
533
+ print SH $command ;
534
+
535
+ # レスポンスの受信、確認
536
+
537
+ $respons = <SH> ;
538
+
539
+ &decode($respons) ;
540
+
541
+ # レスポンスの確認
542
+
543
+ unless($respons =~ /^250/){
544
+
545
+ close(SH); return("HELOコマンド失敗 $!") ;
546
+
547
+ }
548
+
549
+
550
+
551
+ # -------- MAILコマンドの送信とレスポンスの確認 --------- #
552
+
553
+ # コマンドの作成、送信
554
+
555
+ $command = "MAIL FROM:$from\n";
556
+
557
+ print SH $command ;
558
+
559
+ # レスポンスの受信、確認
560
+
561
+ $respons = <SH> ;
562
+
563
+ &decode($respons) ;
564
+
565
+
566
+
567
+ unless($respons =~ /^250/){
568
+
569
+ print SH "RSET\n"; close(SH);
570
+
571
+ return("MAILコマンド失敗 $!") ;
572
+
573
+ }
574
+
575
+
576
+
577
+ # -------- RCPTコマンドの送信とレスポンスの確認 --------- #
578
+
579
+ # コマンドの作成、送信
580
+
581
+ $command = "RCPT TO:$to\n";
582
+
583
+ print SH $command ;
584
+
585
+ # レスポンスの受信、確認
586
+
587
+ $respons = <SH> ;
588
+
589
+ &decode($respons) ;
590
+
591
+
592
+
593
+ unless($respons =~ /^25[0|1]/){
594
+
595
+ print SH "RSET\n"; close(SH);
596
+
597
+ return("RCPTコマンド失敗 $!") ;
598
+
599
+ }
600
+
601
+
602
+
603
+ # -------- DATAコマンドの送信とレスポンスの確認 --------- #
604
+
605
+ # コマンドの作成、送信
606
+
607
+ $command = "DATA\n";
608
+
609
+ print SH $command ;
610
+
611
+ # レスポンスの受信、確認
612
+
613
+ $respons = <SH> ;
614
+
615
+ &decode($respons) ;
616
+
617
+
618
+
619
+ unless($respons =~ /^354/){
620
+
621
+ print SH "RSET\n"; close(SH);
622
+
623
+ return("DATAコマンド失敗 $!") ;
624
+
625
+ }
626
+
627
+
628
+
629
+ # -------- ヘッダ、本文の送信とレスポンスの確認 --------- #
630
+
631
+ # 文字コードの変換
632
+
633
+ &jcode'convert(*send_data,'jis');
634
+
635
+ # コマンドの作成、送信
636
+
637
+ $command = "$send_data\n.\n";
638
+
639
+ print SH $command ;
640
+
641
+ # レスポンスの受信、確認
642
+
643
+ $respons = <SH> ;
644
+
645
+ &decode($respons) ;
646
+
647
+
648
+
649
+ unless($respons =~ /^250/){
650
+
651
+ print SH "RSET\n"; close(SH);
652
+
653
+ return("本文、ヘッダ部送信失敗 $!") ;
654
+
655
+ }
656
+
657
+ # --------QUITコマンドの送信 -------- #
658
+
659
+ # コマンドの作成、送信
660
+
661
+ $command = "QUIT\n";
662
+
663
+ print SH $command ;
664
+
665
+ # --------切断 -------- #
666
+
667
+ close(SH); select(STDOUT);
668
+
669
+
670
+
671
+ $ResultCode = 1 ;
672
+
673
+ return "MAILは正常に送信されました。\n";
674
+
675
+
166
676
 
167
677
  }
168
678
 
169
679
 
170
680
 
681
+ # --------------------
682
+
683
+ # 改行コード変換
684
+
685
+ # --------------------
686
+
687
+ sub decode{
688
+
689
+
690
+
691
+ my $inf = $_[0];
692
+
171
- $cookie{'P1'} = $FORM{'P1'} ;
693
+ $$inf =~ s/\x0D\x0A|\x0D|\x0A/\n/g;
172
-
173
- $cookie{'P2'} = $FORM{'P2'} ;
174
-
175
- $cookie{'P3'} = $FORM{'P3'} ;
176
-
177
-
178
-
179
-
180
-
181
-
182
-
183
- # $bits128 = &md5::convert("$FORM{'P1'}$FORM{'P2'}$FORM{'P3'}$FORM{'P4'}");#
184
-
185
- # $MD5PASS = sprintf("%08x%08x%08x%08x", unpack('NNNN', $bits128)); #
186
-
187
-
188
-
189
- $to = $FORM{'P1'} ;
190
-
191
- $from = 'k.iitsuka@creaplus.co.jp' ;
192
-
193
- $subject = '登録のご案内' ;
194
-
195
- $data .=<<'_HTML_';
196
-
197
- 申し込みいただき有り難うございます。
198
-
199
- 登録の準備が出来ました。
200
-
201
- 下記のアドレスにアクセスして登録してください。
202
-
203
-
204
-
205
- _HTML_
206
-
207
-
208
-
209
- $data .="http://www.creaplus.co.jp/card/regist.cgi?sd=$MD5PASS";
210
-
211
-
212
-
213
- $data .=<<'_HTML_';
214
-
215
-
216
-
217
-
218
-
219
- このアドレスをクリックするとページが開きます。
220
-
221
- 本人確認のため、開いたページにパスワードを入力してください。
222
-
223
-
224
-
225
- 認証されますとアカウントが作成されます。
226
-
227
-
228
-
229
- なお、申し込みから24時間が過ぎますと無効になりますので、ご了承ください。
230
-
231
- _HTML_
232
-
233
-
234
-
235
-
236
-
237
-
238
-
239
-
240
-
241
- &SENDMAIL ;
242
-
243
-
244
-
245
- $html .= <<'_HTLM_' ;
246
-
247
- <h2>申込いただき有り難うございます</h2>
248
-
249
- <p>確認のメールを送信いたしました。<br />
250
-
251
- メール到着までしばらくお待ちください。<br /><br />
252
-
253
- メールが到着しましたらメールにあるアドレスにアクセスし、認証作業を続けてください。<br />
254
-
255
- <a href='http://www.creaplus.co.jp/card/'>
256
-
257
- <img src='html_imgs/link_top.gif' alt='トップページへ戻る'></a>
258
-
259
- </p>
260
-
261
- </div>
262
-
263
- _HTLM_
264
-
265
-
266
-
267
-
268
-
269
- &page_Print ;
270
-
271
- exit ;
272
694
 
273
695
 
274
696
 
@@ -280,180 +702,6 @@
280
702
 
281
703
 
282
704
 
283
- ```cgi
284
-
285
- #mail_sender.cgi
286
-
287
-
288
-
289
- #!/usr/bin/perl
290
-
291
-
292
-
293
- require "jcode.pl";
294
-
295
- require "perl-lib.pl";
296
-
297
-
298
-
299
- readparts('FORM', '<>=', 'sjis') ;
300
-
301
-
302
-
303
- $htmlbody = '<html>' ;
304
-
305
-
306
-
307
-
308
-
309
- if($FORM{'act'} eq 'a'){
310
-
311
- &form_A ;
312
-
313
- }elsif($FORM{'act'} eq 'b'){
314
-
315
- &form_B ;
316
-
317
- }elsif($FORM{'act'} eq 'b2'){
318
-
319
- &form_B2 ;
320
-
321
- }elsif($FORM{'act'} eq 'c'){
322
-
323
- &form_C ;
324
-
325
- }elsif($FORM{'act'} eq 'd'){
326
-
327
- &form_D ;
328
-
329
- }elsif($FORM{'act'} eq 'd2'){
330
-
331
- &form_D2 ;
332
-
333
- }else{
334
-
335
- &form_A ;
336
-
337
- }
338
-
339
-
340
-
341
-
342
-
343
- $htmlbody .= '</html>' ;
344
-
345
-
346
-
347
- print "Content-type: text/html; charset=x-sjis;Pragma: no-cache\n\n" ;
348
-
349
- print $htmlbody ;
350
-
351
-
352
-
353
-
354
-
355
-
356
-
357
- exit ;
358
-
359
-
360
-
361
- #------------------------------------------------
362
-
363
- # action ?¡¦¡¦???[?`??
364
-
365
- #------------------------------------------------
366
-
367
-
368
-
369
- sub form_A {
370
-
371
- $htmlbody .= 'A----A' ;
372
-
373
- $htmlbody .= '<form action="mail_sender.cgi">' ;
374
-
375
- $htmlbody .= '' ;
376
-
377
- $htmlbody .= '' ;
378
-
379
- $htmlbody .= '' ;
380
-
381
- $htmlbody .= '' ;
382
-
383
- $htmlbody .= '</form>' ;
384
-
385
-
386
-
387
- }
388
-
389
-
390
-
391
- #------------------------------------------------
392
-
393
- sub form_B {
394
-
395
- $htmlbody .= 'B----B' ;
396
-
397
- print "Location:http://localhost/test/mail_sender.cgi?act=b2\n\n";
398
-
399
- exit ;
400
-
401
- }
402
-
403
-
404
-
405
- #------------------------------------------------
406
-
407
- sub form_B2 {
408
-
409
- $htmlbody .= 'B2----B2' ;
410
-
411
-
412
-
413
- }
414
-
415
-
416
-
417
- #------------------------------------------------
418
-
419
- sub form_C {
420
-
421
- $htmlbody .= 'C----C' ;
422
-
423
-
424
-
425
- }
426
-
427
-
428
-
429
- #------------------------------------------------
430
-
431
- sub form_D {
432
-
433
- $htmlbody .= 'D----D' ;
434
-
435
-
436
-
437
- }
438
-
439
-
440
-
441
- #------------------------------------------------
442
-
443
- sub form_D2 {
444
-
445
- $htmlbody .= 'D2----D2' ;
446
-
447
-
448
-
449
- }
450
-
451
-
452
-
453
- ```
454
-
455
-
456
-
457
705
  ### 試したこと
458
706
 
459
707
 

4

書式の改善

2020/06/19 12:39

投稿

soraatori
soraatori

スコア55

test CHANGED
File without changes
test CHANGED
@@ -22,6 +22,8 @@
22
22
 
23
23
  ```cgi
24
24
 
25
+ #regist.cgi
26
+
25
27
 
26
28
 
27
29
  sub Register_Proc {
@@ -278,6 +280,180 @@
278
280
 
279
281
 
280
282
 
283
+ ```cgi
284
+
285
+ #mail_sender.cgi
286
+
287
+
288
+
289
+ #!/usr/bin/perl
290
+
291
+
292
+
293
+ require "jcode.pl";
294
+
295
+ require "perl-lib.pl";
296
+
297
+
298
+
299
+ readparts('FORM', '<>=', 'sjis') ;
300
+
301
+
302
+
303
+ $htmlbody = '<html>' ;
304
+
305
+
306
+
307
+
308
+
309
+ if($FORM{'act'} eq 'a'){
310
+
311
+ &form_A ;
312
+
313
+ }elsif($FORM{'act'} eq 'b'){
314
+
315
+ &form_B ;
316
+
317
+ }elsif($FORM{'act'} eq 'b2'){
318
+
319
+ &form_B2 ;
320
+
321
+ }elsif($FORM{'act'} eq 'c'){
322
+
323
+ &form_C ;
324
+
325
+ }elsif($FORM{'act'} eq 'd'){
326
+
327
+ &form_D ;
328
+
329
+ }elsif($FORM{'act'} eq 'd2'){
330
+
331
+ &form_D2 ;
332
+
333
+ }else{
334
+
335
+ &form_A ;
336
+
337
+ }
338
+
339
+
340
+
341
+
342
+
343
+ $htmlbody .= '</html>' ;
344
+
345
+
346
+
347
+ print "Content-type: text/html; charset=x-sjis;Pragma: no-cache\n\n" ;
348
+
349
+ print $htmlbody ;
350
+
351
+
352
+
353
+
354
+
355
+
356
+
357
+ exit ;
358
+
359
+
360
+
361
+ #------------------------------------------------
362
+
363
+ # action ?¡¦¡¦???[?`??
364
+
365
+ #------------------------------------------------
366
+
367
+
368
+
369
+ sub form_A {
370
+
371
+ $htmlbody .= 'A----A' ;
372
+
373
+ $htmlbody .= '<form action="mail_sender.cgi">' ;
374
+
375
+ $htmlbody .= '' ;
376
+
377
+ $htmlbody .= '' ;
378
+
379
+ $htmlbody .= '' ;
380
+
381
+ $htmlbody .= '' ;
382
+
383
+ $htmlbody .= '</form>' ;
384
+
385
+
386
+
387
+ }
388
+
389
+
390
+
391
+ #------------------------------------------------
392
+
393
+ sub form_B {
394
+
395
+ $htmlbody .= 'B----B' ;
396
+
397
+ print "Location:http://localhost/test/mail_sender.cgi?act=b2\n\n";
398
+
399
+ exit ;
400
+
401
+ }
402
+
403
+
404
+
405
+ #------------------------------------------------
406
+
407
+ sub form_B2 {
408
+
409
+ $htmlbody .= 'B2----B2' ;
410
+
411
+
412
+
413
+ }
414
+
415
+
416
+
417
+ #------------------------------------------------
418
+
419
+ sub form_C {
420
+
421
+ $htmlbody .= 'C----C' ;
422
+
423
+
424
+
425
+ }
426
+
427
+
428
+
429
+ #------------------------------------------------
430
+
431
+ sub form_D {
432
+
433
+ $htmlbody .= 'D----D' ;
434
+
435
+
436
+
437
+ }
438
+
439
+
440
+
441
+ #------------------------------------------------
442
+
443
+ sub form_D2 {
444
+
445
+ $htmlbody .= 'D2----D2' ;
446
+
447
+
448
+
449
+ }
450
+
451
+
452
+
453
+ ```
454
+
455
+
456
+
281
457
  ### 試したこと
282
458
 
283
459
 

3

書式の改善

2020/06/18 23:33

投稿

soraatori
soraatori

スコア55

test CHANGED
File without changes
test CHANGED
@@ -10,6 +10,10 @@
10
10
 
11
11
  レンタルサーバーは他会社が所有されているため、わかりません。
12
12
 
13
+ 最後尾の「確認のメールを送信いたしました。」までは走っているようですが、
14
+
15
+ 「&SENDMAIL」より上部のメールを送信するプログラムが正常に動いていない模様です。
16
+
13
17
 
14
18
 
15
19
  ### 該当のソースコード
@@ -20,6 +24,148 @@
20
24
 
21
25
 
22
26
 
27
+ sub Register_Proc {
28
+
29
+
30
+
31
+
32
+
33
+ &email_check($FORM{'P1'}) ;
34
+
35
+ if($error_flg > 0){
36
+
37
+ $html .= <<"_HTLM_" ;
38
+
39
+ <h2>メールアドレスが不明です。</h2>
40
+
41
+ <p>$error<br />
42
+
43
+ 「戻る」ボタンで戻り、修正してください。
44
+
45
+ </p>
46
+
47
+ </div>
48
+
49
+ _HTLM_
50
+
51
+ &page_Print ;
52
+
53
+ exit ;
54
+
55
+ }
56
+
57
+
58
+
59
+ if($FORM{'P2'} eq ''){
60
+
61
+ $html .= <<'_HTLM_' ;
62
+
63
+ <h2>お名前が入力されていません</h2>
64
+
65
+ <p>お名前は必須です。<br />
66
+
67
+ 「戻る」ボタンで戻り、修正してください。
68
+
69
+ </p>
70
+
71
+ </div>
72
+
73
+ _HTLM_
74
+
75
+ &page_Print ;
76
+
77
+ exit ;
78
+
79
+ }
80
+
81
+
82
+
83
+ if($FORM{'P3'} eq ''){
84
+
85
+ $html .= <<'_HTLM_' ;
86
+
87
+ <h2>職員番号が入力されていません</h2>
88
+
89
+ <p>職員番号は必須です。<br />
90
+
91
+ 「戻る」ボタンで戻り、修正してください。
92
+
93
+ </p>
94
+
95
+ </div>
96
+
97
+ _HTLM_
98
+
99
+ &page_Print ;
100
+
101
+ exit ;
102
+
103
+ }
104
+
105
+
106
+
107
+ if($FORM{'P4'} eq ''){
108
+
109
+ $html .= <<'_HTLM_' ;
110
+
111
+ <h2>パスワードが入力されていません</h2>
112
+
113
+ <p>パスワードは必須です。<br />
114
+
115
+ 「戻る」ボタンで戻り、修正してください。
116
+
117
+ </p>
118
+
119
+ </div>
120
+
121
+ _HTLM_
122
+
123
+ &page_Print ;
124
+
125
+ exit ;
126
+
127
+ }
128
+
129
+
130
+
131
+ $File_Name_CHK = "$USERS_DIR$FORM{'P1'}!dt" ;
132
+
133
+
134
+
135
+ if(-e "$File_Name_CHK"){
136
+
137
+ $html .= <<'_HTLM_' ;
138
+
139
+ <h2>既にご登録いただいております</h2>
140
+
141
+ <p>入力されたメールアドレスは既に登録済みです。<br />
142
+
143
+ パスワードをお忘れになられた場合はこちらをクリックしてください。<br />
144
+
145
+ <a href='regist.cgi?mode=rm'>
146
+
147
+ <img src='html_imgs/btn_fogp.gif' alt='パスワードを忘れた'></a>
148
+
149
+ <br />
150
+
151
+ <a href='http://www.creaplus.co.jp/card/'>
152
+
153
+ <img src='html_imgs/link_top.gif' alt='トップページへ戻る'></a>
154
+
155
+ </p>
156
+
157
+ </div>
158
+
159
+ _HTLM_
160
+
161
+ &page_Print ;
162
+
163
+ exit ;
164
+
165
+ }
166
+
167
+
168
+
23
169
  $cookie{'P1'} = $FORM{'P1'} ;
24
170
 
25
171
  $cookie{'P2'} = $FORM{'P2'} ;
@@ -28,17 +174,19 @@
28
174
 
29
175
 
30
176
 
177
+
178
+
179
+
180
+
31
- $bits128 = &md5::convert("$FORM{'P1'}$FORM{'P2'}$FORM{'P3'}$FORM{'P4'}");
181
+ # $bits128 = &md5::convert("$FORM{'P1'}$FORM{'P2'}$FORM{'P3'}$FORM{'P4'}");#
32
-
182
+
33
- $MD5PASS = sprintf("%08x%08x%08x%08x", unpack('NNNN', $bits128));
183
+ # $MD5PASS = sprintf("%08x%08x%08x%08x", unpack('NNNN', $bits128)); #
34
184
 
35
185
 
36
186
 
37
187
  $to = $FORM{'P1'} ;
38
188
 
39
- $from = 'shop@creaplus.co.jp' ;
189
+ $from = 'k.iitsuka@creaplus.co.jp' ;
40
-
41
- $pfrom = '-f $from' ;
42
190
 
43
191
  $subject = '登録のご案内' ;
44
192
 
@@ -56,7 +204,7 @@
56
204
 
57
205
 
58
206
 
59
- $data .="http://www.aaa.co.jp/card/regist.cgi?sd=$MD5PASS";
207
+ $data .="http://www.creaplus.co.jp/card/regist.cgi?sd=$MD5PASS";
60
208
 
61
209
 
62
210
 
@@ -82,6 +230,50 @@
82
230
 
83
231
 
84
232
 
233
+
234
+
235
+
236
+
237
+
238
+
239
+ &SENDMAIL ;
240
+
241
+
242
+
243
+ $html .= <<'_HTLM_' ;
244
+
245
+ <h2>申込いただき有り難うございます</h2>
246
+
247
+ <p>確認のメールを送信いたしました。<br />
248
+
249
+ メール到着までしばらくお待ちください。<br /><br />
250
+
251
+ メールが到着しましたらメールにあるアドレスにアクセスし、認証作業を続けてください。<br />
252
+
253
+ <a href='http://www.creaplus.co.jp/card/'>
254
+
255
+ <img src='html_imgs/link_top.gif' alt='トップページへ戻る'></a>
256
+
257
+ </p>
258
+
259
+ </div>
260
+
261
+ _HTLM_
262
+
263
+
264
+
265
+
266
+
267
+ &page_Print ;
268
+
269
+ exit ;
270
+
271
+
272
+
273
+ }
274
+
275
+
276
+
85
277
  ```
86
278
 
87
279
 

2

書式の改善

2020/06/18 03:56

投稿

soraatori
soraatori

スコア55

test CHANGED
File without changes
test CHANGED
@@ -17,6 +17,16 @@
17
17
 
18
18
 
19
19
  ```cgi
20
+
21
+
22
+
23
+ $cookie{'P1'} = $FORM{'P1'} ;
24
+
25
+ $cookie{'P2'} = $FORM{'P2'} ;
26
+
27
+ $cookie{'P3'} = $FORM{'P3'} ;
28
+
29
+
20
30
 
21
31
  $bits128 = &md5::convert("$FORM{'P1'}$FORM{'P2'}$FORM{'P3'}$FORM{'P4'}");
22
32
 

1

書式の改善

2020/06/18 03:26

投稿

soraatori
soraatori

スコア55

test CHANGED
File without changes
test CHANGED
@@ -5,6 +5,10 @@
5
5
  名刺を注文するシステムを改修し作っています。
6
6
 
7
7
  ユーザー登録フォームを実装中に、確認メール届かないという問題が発生しました。
8
+
9
+ ドメイン名は実際に存在するものです。
10
+
11
+ レンタルサーバーは他会社が所有されているため、わかりません。
8
12
 
9
13
 
10
14
 
@@ -22,7 +26,7 @@
22
26
 
23
27
  $to = $FORM{'P1'} ;
24
28
 
25
- $from = 'shop@aaa.co.jp' ;
29
+ $from = 'shop@creaplus.co.jp' ;
26
30
 
27
31
  $pfrom = '-f $from' ;
28
32
 
@@ -86,4 +90,14 @@
86
90
 
87
91
  問題個所の特定に当たりをつけていっているところです。
88
92
 
93
+
94
+
95
+ 迷惑メールフォルダにも届いていませんでした。
96
+
97
+ アドレスを「shop@creaplus.co.jp」から、所有の「k.iitsuka@creaplus.co.jp」に変更してみましたが
98
+
99
+ 変更後のアドレスへも届いていなかったので、確認メールも届かなかったのだと思います。
100
+
101
+
102
+
89
103
  つたない文章で申し訳ございませんが、何卒よろしくお願いいたします。