• 締切済み

フォームメールを外人に送る方法について

はじめまして。 perlでフォームメールスクリプトを作ったのですが、思ったような動作を致しません。 よくある問い合わせフォームで、記入して送信すると相手にも控えが届くものです。日本国内からはきちんと動作するのですが、海外から送信すると控えが届かないのです。問い合わせフォームの送信内容は全て英語で行います。 ものすごく基本的なことなのですが、jcode.plをrequireしていること自体大間違いなのでしょうか?通常のHTMLからCGIを呼び出すのですが、文字コードのミスなのでしょうか。 外人を意識してサイトを作ることがはじめてなもので、どなたかご存知の方がいらっしゃいましたらご指南下さい。よろしくお願いいたします。

  • Perl
  • 回答数2
  • ありがとう数0

みんなの回答

回答No.2

まず、どの段階で不具合が起きているかを調べる必要がありますね。 ・jcode.plでコケているのか ・フォームメールスクリプトの処理でコケているのか ・sendmailでコケているのか これは、 ・sendmail単体で相手方にメールを送ってみて正常に送れるかどうか(届かなかった控えと同じ文面で) ・jcode.plをrequireせずにスクリプトを動かしてみて、正常に作動するかどうか ・スクリプトでコケていれば何らかのエラーメッセージがあるはずなので、error.logを調べる まず最低限これだけの確認は必要です。 確認しておかしい箇所がみつかれば、それが解決の糸口になると思います。

hanbey
質問者

補足

ありがとうございます。 試してみて問題があったらまた投稿します。

回答No.1

「海外から送信すると」の意味がよくわかりません。フォームメールのスクリプトはどこで動いているんでしょうか? それの動いているサーバが日本国内にあって、外国からそこにアクセスした場合に正常動作しないという意味でしょうか? (でも実際のところウェブページに場所なんて関係ない筈ですが・・・) メールの送信はそのサーバからされるんですよね?

hanbey
質問者

補足

早速の回答ありがとうございます。 申し訳ございませんでした。補足させていただきます。 サーバはホスティングサービスを使っており、国内にあります。ウェブページ、スクリプト共にここにございます。送信にはsendmailを利用しております。 よろしくお願いいたします。

関連するQ&A

  • メールフォームを2つ設置するには

    違う項目のメールフォームを2つ設置するため 下記のように作りました。 1、CGIフォルダの中にmail.cgiとjcode.plが入っている 2、CGIフォルダの中にmail2.cgiとjcode.plが入っている 1のフォームは送受信できるのですが、 2のフォームで送信すると1のフォームを呼び出してしまいます。 CGI2フォルダを作り送信するのも試しましたが、同じ結果でした。 jcode.plの記述は変えていません。 2のフォームで1のフォームが呼び出される原因について ご教授をお願い致します。

    • ベストアンサー
    • CGI
  • メールフォームからメール送信するページを作成したいのですが、

    メールフォームからメール送信するページを作成したいのですが、 最初の方の require 'perl-lib.pl'; の所で、処理が止まってしまいます。 #↓======================================= #!c:/Perl/bin/perl print "Content-type: text/html\n\n"; require "cgi-lib.pl"; require "jcode.pl"; require "perl-lib.pl"; # ←ここでとまる。  : #↑======================================= サーバは、社内のWebサーバです。 サーバの環境は、 ・OS:WindowsXP ・サーバソフト:Apache HTTP Server 2.0.54 ・ActivePerl 5.8.7 Build 813 です。 perl-lib.plの保存先フォルダを変えてもダメでした。 (もちろん、その際、requireのパスも変更) perl-lib.plは、クライアントからアスキーモードでアップロードしました。 パーミッションは777です。l perl-lib.plは、 http://www.tryhp.net/perllib.htm よりダウンロードしました。 原因が分からず行き詰っております。 どのようなことが考えられるでしょうか。 どなたかご存知の方、ご教授願います。

    • ベストアンサー
    • Perl
  • Perl メールフォーム複数のアドレスに。

    メールを複数のアドレスに配置したいのですがPGをどう変更すれば よろしいでしょうか? 参考ソース #!/usr/bin/perl # フォームメール #jcode.plの場所を設定 require "./jcode.pl"; # sendmailの場所を設定 $sendmail = '/usr/lib/sendmail'; # サンプルのタイトル $mail_title = "メール送信サンプル"; # ページの背景色 $bgcolor = "#FFFFFF"; # ページの文字色 $text = "#000000"; # 戻り先のURL $back_url = '***@aaa.co.jp'; # CGIプログラムの設置場所 $cgi_url = "./mail.cgi"; # 受信メールアドレス(送信先) $mailto = '***@aaa.jp';

    • ベストアンサー
    • Perl
  • フォームメールつくりましたけど、、。>_<

    下記のページで、フォームメールダウンロード つくったのですが、 [public_html] └[cgi-bin] ├[tmp] ├formmail.cgi ├jcode.pl └perl-lib.pl あげてフォームを入れて送ったのですが、 エラーになります。Internal Server Errorじゃなくて 「E-Mailを記入してください」下にもどるボタンが でます。ってことはパーミッションはあってるとおもうのですが 空白全部記入していて、メールもちゃんとしたアドレス 入れたのにエラーがでる原因は何が考えられますか? ダウンロードしたのは下記です。 http://www.tryhp.net/formmail.htm

    • ベストアンサー
    • CGI
  • メールフォーム

    よろしくお願いします。 メールフォームをkentwebさんよりダウンロードしました。 ビルダー11でフォームを作成したのですが、フォームはここで作成するのではないのでしょうか? もしそうなら、ただ単に作成するだけではだめですよね、それが分からなくて。 postmailのフォームのどの部分を変更すればいいのか全く分からなくて、やはりムリなのでしょうか?初心者には。 kentwebさんにもちろん質問しましたが、HTMLについてはご解答いただけないのでこちらで質問させていただきました。 CGIで変更箇所など説明どおり変更しました、 ( perlパスなど)メールフォームの中身(住所や名前など記入項目)を変更するにはどこですればいいのでしょうか? それともビルダーで作ったメールフォームに何か記入してサーバーへアップするのでしょうか? ダウンロードしたときフォルダには下記が入っていました。 postmail.cgi でPerlなどを変更しました。 public_html / index.html (トップページ) | +-- postmail / postmail.html | postmail.cgi [705] | +-- lib / jcode.pl [604] | io-socket.pl [604] | mimew.pl [604] ... 任意 | +-- data / log.cgi [606] | +-- tmpl / body.txt conf.html thx.html err1.html err2.html 初心者で本当に基本的なことで申し訳ありません。説明を何度も何度も読み返したのですが、理解できませんでした。 本当にこんな質問で申し訳ないのですがよろしくお願いします。 違うカテゴリーで質問したのですが、こちらのほうがいいと回答いただきましたので、以前の質問を終了しこちらで質問させていただきました。よろしくお願いします。

  • メールフォームCGIの設置について

    下記のサイトのメールフォームCGIをさくらインターネットのサーバーで設置したいのですが、うまく作動せず送信できません。 前にロリポップサーバーで設置したところ、作動し送信も問題なくおこなえたのですが、パーミッションやそれぞれのファイルの中身までロリポップで設置したものとまったく同じファイル・条件でさくらインターネットのサーバーに設置したのですが「500 Internal Server Error」がでてしまい、送信できません。 CGIの提供先は下記になります。 http://pgd.jp/cgiscript.html さくらインターネットのパスなどは下記の通りです。 Perl:5.8.x perl:/usr/bin/perl sendmail:/usr/sbin/sendmai CGIの動作環境は下記の通りです。 Perl5 # /usr/sbin/sendmail が使えること # モジュール HTML::Template, Jcode が動作すること 色々試してはみたのですが、CGIやPerlの知識はほとんどありませんので結局何をやってもだめでした。 パーミッションの設定やファイルのアップロードは間違いなくできております。 よろしくお願い致します。

    • ベストアンサー
    • CGI
  • perlで受取ったパラメータをバイトコードのまま変数に代入

    HTMLフォームの、name=aのテキストボックスに「あ」と入力しCGIにSubmitすると、a=%82%A0とバイトコードに変換されわたされますよね 受け側のCGIで下記の様にそのパラメータを$aに代入すると、$aには「あ」となって代入されるのですが、あえて「あ」ではなくバイトコードの「%82%A0」で代入するようにするには、どうしたらよいのでしょうか? #!/usr/local/bin/perl require 'cgi-lib.pl'; require 'jcode.pl'; &ReadParse; $a=$in{'a'};

    • ベストアンサー
    • Perl
  • 非常に見にくいです.....

    このジャンルであっているかどうか微妙ですが質問させていただきます。 よくフリーのCGIやPHPなどのテキストファイルをダウンロードしたとき、アップロード時に転送モードが悪かったのかどうか知りませんが、よく #!/usr/bin/perl↑↑require './jcode.pl';↑require './cgi-lib.pl';↑↑..................... のように改行部がすべて↑になってますよねぇ? もし「戻りページ」など設定しなければならない部分があったりする時は非常に見にくくやりづらいのです。 そこでこの上の例を自動で #!/usr/bin/perl require './jcode.pl'; require './cgi-lib.pl'; に書き換えてくれるようなソフトがあったら教えて下さい!!

    • ベストアンサー
    • CGI
  • 送受信が出来ないメールフォーム

    メールフォームの送信ボタンを押すと Internal Server Errorの画面になり、送受信が出来ません。 jcode.plとcgi-lib.plは書き直していません。 多分form.cgiの書き方が何か違うのだと思います。 下記がform.cgiの中身です。 #!/usr/bin/perl require 'cgi-lib.pl'; require 'jcode.pl'; &ReadParse(*formdata); $subject = "$formdata{'subject'}"; $name = "$formdata{'name'}"; $email = "$formdata{'email'}"; $email = "$formdata{'dayl'}" $12 = "$formdata{'12'}"; $13 = "$formdata{'13'}"; $to = '△@yahoo.co.jp'; $subject = 'メール'; &jcode'convert(*subject,'jis'); open(MAIL, "| /usr/sbin/sendmail -t"); print MAIL "To: $to\n"; print MAIL "From: $email\n"; print MAIL "Content-Type: text/plain;\n\n"; print MAIL "件名:\n$subject\n\nお名前:\n$name\n\nメールアドレス:\n$email\n\n生年月日:\n$day\n\n資料:\n$12\n\n担当者名:\n$13\n\nご相談内容:\n$message\n"; close(MAIL); print "Location: http://△.sakura.ne.jp/12.html\n\n"; exit; 初心者にも分かる様にどなたかご教授をお願いします。 print "Location: http://△.sakura.ne.jp/12.html\n\n"; 部分の12.htmlは送信後に表示するページです。

    • 締切済み
    • CGI
  • jcode.pl と &ReadParse()

    CGIファイルの先頭は #!/usr/local/bin/perl require './cgi-lib.pl'; require './jcode.pl'; &ReadParse(); という感じになっています。 ここでのの require は、日本語を使うためのもの だと思っています。合っていますか? &ReadParse() というのは何ですか? require と関係があるみたいです。 require を書かずに &ReadParse() を書くとCGIエラーになります。

    • ベストアンサー
    • CGI

専門家に質問してみよう