![]() |
カレッヂ |
質問者 はる2
投稿日 2008/10/9(木) 19:39:05
ショッピングバスケット・プロ v6を使用しています。 顧客が、例えば momosan@tubu.ocn.ne.jp と言うアドレスを、 momosan@tubu.ocn.jp(.neが無い)と言う誤り方をした場合に、 受注者側にも注文者側にもメール送信がされません。 tomosan@tubu.ocn.ne.jpなどと文字を誤った場合やには、 注文者側にはメールが届きませんが、受注者側には注文を受けたメールが 配信されます。 勿論アドレスに誤り無ければ両者にちゃんとメール配信されます。 momosan@tubu.ocn.jp(.neが無い)と言う誤り方をした場合でも、 注文を見逃してしまうので、受注者側には届くようにしたいです。 cart.cgiのオーダー処理sendmailの辺り(以下)を直せば良いような気がするのですが、 どのように直せば良いのか、どなたかご教授頂きたくお願い致します。 ###################################################################################### # # オーダー処理 # ###################################################################################### 1 while $date_num =~ s/(.*\d)(\d\d\d\d)/$1-$2/g; if (!open(INFO,$info_file)) { &error("#設定エラー","特定商取引に関する表\示について設定したファイルが見つかりません。"); } @info = <INFO>; close(INFO); if (open(ADDR,">> $order_csv")) { foreach $write (@formCSV) { if ($write eq '$NUMBER') { push(@CSV,$date_num); } elsif ($write eq '$ORDER') { $orders =~ s/\n//g; $orders =~ s/$doru//g; $orders =~ s/$enn//g; push(@CSV,$orders); } elsif ($write eq '$DATE') { push(@CSV,$date_now); } elsif ($write eq '$EMAIL') { push(@CSV,$in{'_email'}); } elsif ($write eq '$REMOTE_USER') { push(@CSV,$REMOTE_USER); } else { $write =~ s/"/"/g; $write =~ s/&/&/g; $write =~ s/</</g; $write =~ s/>/>/g; push(@CSV,$in{$write}); } } print ADDR &EncodeCSV(@CSV) . "\n"; close(ADDR); } #★ メール整形用サブルーチンへ &make_body; #★ 表題の文字化け対策 @subject = ("[$date_num] $mail_subject", "[$date_num] $copy_subject"); $enc_subject1 = &mimeencode(shift @subject); $enc_subject2 = &mimeencode(shift @subject); if (!open OUT,"| $sendmail -f $in{'_email'} -t") { &error("異常停止",$!); } print OUT &jis("X-Processed: $date_now\n"); print OUT "X-SENDER: $REMOTE_HOST\[$REMOTE_ADDR\]\n"; print OUT &jis("X-AGENT: $HTTP_USER_AGENT\n"); print OUT "Subject: $enc_subject1\n"; print OUT "From: $in{'_email'}\n"; print OUT "To: $mailto_order\n"; print OUT "Content-Transfer-Encoding: 7bit\n"; print OUT "Content-Type: text/plain; charset=iso-2022-jp\n\n"; print OUT "\n"; foreach (@soushin) { print OUT $_; } print OUT "\n"; $sign =~ s/\n/\n /g; print OUT &jis(" $sign\n"); close(OUT); sleep(1); if (!open OUT,"| $sendmail -f order@en.co.jp -t") { &error("異常停止",$!); } print OUT &jis("X-Processed: $date_now\n"); print OUT "X-SENDER: $REMOTE_HOST\[$REMOTE_ADDR\]\n"; print OUT &jis("X-AGENT: $HTTP_USER_AGENT\n"); print OUT "Subject: $enc_subject2\n"; print OUT "From: $mailto_order\n"; print OUT "To: $in{'_email'}\n"; print OUT "Content-Transfer-Encoding: 7bit\n"; print OUT "Content-Type: text/plain; charset=iso-2022-jp\n\n"; print OUT &jis("$mail_mes\n"); print OUT "\n"; foreach (@soushin) { print OUT $_; } print OUT "\n"; print OUT "$keisen_5\n"; print OUT &jis(" 特定商取引に関する法律による表\示\n"); print OUT "$keisen_5\n"; foreach (@info) { print OUT &jis($_); } print OUT "\n"; print OUT &jis("$sign\n"); close(OUT);
【プロバイダ】http://www.zuisoen.co.jp/item/list-yuuki.html#1 |
回答者 rescue
[削除]
投稿日 2008/10/14(火) 23:05:21
一般的には、送信先に間違いが無ければ、Fromに影響を受けずに配信されます。 しかし昨今では、sendmailの機能だと思いますが、Fromすなわち送信者の メールアドレスのチェックや、同じプロバイダ内であれば配信ユーザの存在の有無が その場でチェックされ、配信そのものがされない場合もあるようです。 これはCGIのレベルで処理するものではないので、次のようなアイデアで うまく回避するしかないと思われます。 案 FromもToも送信先(自分)にし、Reply-Toに送信者を入れるようにしてみる。 もしかするとReply-Toもチェックされていれば、それも入れないようにしてみる。 |
質問者 はる2
[削除]
投稿日 2008/10/15(水) 00:41:08
rescue様 ご指摘の通りプログラム変更することで対策できました。 ご教授ありがとうございました。とても感謝しております。 |
このページは終了したので返信(回答)は書きこめません
このページ:http://www.rescue.ne.jp/CGI-BBS/soho/cargo/20081009193905.shtml | Web裏技 |