電子書籍の厳選無料作品が豊富!

Perlでのメール送信についてご教示ください。

[mail.pl]
my $q = new CGI;
my $from = $q->param('from');
if($from eq ""){
print "Content-type: text/plain; charset=Shift_JIS\n\n";
print "アドレスが入力されていません。\n\nブラウザの戻るボタンで戻ってください。";
exit(1);
}
my $mailto= 'aaaaa@aaaaaa.jp';

[mailform.pl]
#!/usr/bin/perl
print qq(Content-type: text/html; charset=Shift_JIS\n\n);
print <<END;
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
アドレス(From):<font color="red" size="2">※必須</font><br />
<input type="text" name="from" size="50" value=""><br />
<br />

現在、mailperl.pl→mail.plにフォームからのデータの受け渡しをするようにしメールを送信しています。
そして、これをmail.html→mail.plにデータの受け渡しをしたいのですが、
どのようにすればいいのでしょうか・・?

また、まだしっかり理解できていない部分も多いため、説明が不足していたり
わかりずらいかと思います。その時は、ご指摘ください;;

A 回答 (2件)

No.1です。



重箱の隅で恐縮ですが。。。

> まだまだ知識が足りていないですよね。。。

足りないのは「知識」ではなく「理解」です。
mailperl.plのメール入力画面の送出が出来ているのであれば、WebブラウザでHTMLを見ることが出来ますね。
そのHTMLとmail.htmlの比較はされましたか?

まさかmailperl.plモジュールと同じフォルダ(ディレクトリ)にmail.htmlファイルを置いて「画面が表示されない」といったことではないですよね?
Webサーバー上のコンテンツの配置設定は理解されていますよね?
    • good
    • 0
この回答へのお礼

はい・・・理解も足りていないですね・・・・;;

その理解が足りていないせいで、
今までフォームもPerlで処理していて、それをサーバーには送っていたのですが、実行するのがブラウザ上でなく送信していました。それが送信できていて、
今までmail.htmlも、同様にしていました。
しかし、ブラウザ上で実行すると、問題なく送信できました。

これが、まだWebの基礎に関して、理解できていないせいですorz

>Webサーバー上のコンテンツの配置設定は理解されていますよね?
100%理解しているかといわれると怪しいですが、
これは、大丈夫だと思います・・・

お礼日時:2016/11/24 14:34

まだWebの世界の基本中の基本を理解されていないようで。

。。

まず、HTMLの通信はWebサーバーが1つの画面を送出した所で完結します。
静的画面だとHTMLを送出した所で一つの通信処理が終了します。
その画面内に画像が1個有ったとしましょう。Webブラウザは受信したHTMLの内容を解釈して表示を行う処理の過程で画像ファイルがあってその場所が正しい書式で行われていると解釈するとそのファイルを指定されたサーバに要求します。これは先のHTMLとは独立した通信です。
そういう仕組みで出来上がっています。

で。
mailperl.plというサーバー上のプログラムが送出しているHTMLは上記のようにWebブラウザがそれを受信し画面を表示し終わった時点で完結します。つかり表示したらサーバとはつながっていません。
なので、mailperl.plが送出するHTMLと、お考えのmail.htmlに仕込まれているFORM変数の名前とデータ型が全く同じで、Submit先も同じなのでしたらmail.plは何も影響を受けません。プログラム名はmail.plのままでよいですし、中のFORM変数を受け取って処理する部分もそのままで問題無いです。

どうもPerlというサーバ側のプログラムの世界と、Webブラウザ側の表示&画面入力の世界の区別がついていないように見えます。
その辺の基本中の基本をちゃんと理解されるとよいでしょう。
CGIはその理解があった上で行わないと混乱します。
まぁPerという言語の仕様も初心者にはその辺お混乱を招く要素だとは思いますが。。。

参考まで。
    • good
    • 1
この回答へのお礼

ご回答ありがとうございます。

まだまだ知識が足りていないですよね。。。


<form action="./cgi/mail.pl" method="post">
<input type="hidden" name="a" value="exec">
名前(Name) :<font color="red" size="2">※必須</font><br />
<input type="text" name="Name" size="30" value=""><br />
<br />

以下~他の処理

<p>
<input type="submit" value="送信">
<input type="reset" value="リセット">
</p>
</form>

このフォームからフォームをHTMLソースにそのまま記述し
mail.plに関してはそのままで実行しているのですが・・・

お礼日時:2016/11/24 13:05

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!