メールで受け取った内容をフォームに入れて送信したいのですが?
[上に]
[前に]
[次に]
CGI 習い始め
[E-Mail]
[HomePage]
1999/10/13(水) 15:20:03
受信したメールの内容をフォームに入れられるようなCGIかJavaScriptはありますか、例えば
[seimei]
Yamada Hanako と入った時にName="seimei" value="Yamda Hanako"
とYamada Hanako が別フォームに入る様にして、それを送信したいのです。
やはり無理ですか?
とほほ
1999/10/15(金) 23:57:38
うーん・・・ちょっと、ご質問の意味がよくわからないのですが・・・
フォーム入力から受信したメールを他のメールアドレスにも送信したい、
つまり、フォーム入力したデータを複数のメールアドレスに送信したい
ということでしょうか?
CGI 習い始め
[E-Mail]
1999/10/16(土) 14:25:26
お返事有難う御座います。
メールで入った、例えば
[FirstName]
Miki
[LastName]
Yasuda
[Address1]
135-1-1
[Address2] =name
Mikasa =value
の value に当たる部分をフォームの中にいれて、それを第三者にインターネットを通じて<INPUT TYPE=submit VALUE=" 送信 ">で送信する方法を模索しております。 可能でしょうか?
ふじ
1999/10/16(土) 18:15:36
とりあえずPerlのCGIで実現する方法。
1.CGIを起動
↓
2.Net::POP3 モジュールかなにかを使ってPOPサーバからメールを取って来る。
↓
3.取ってきたメールの内容を解析。
>[FirstName]
>Miki
>[LastName]
>Yasuda
のような形式のメールなら、適当に処理して変数に入れる。
↓
4.フォームに変数の値を埋めこんだHTMLを出力。
(目で見て確認?)
5.サブミット。
若しくは、(CGIじゃなくて)定期的に起動する Perl スクリプトで
上記の 3. までの処理をして、LWP モジュールでも使ってデータを送信。
#あまり簡単ではないかも。
CGI 習い始め
[E-Mail]
1999/10/17(日) 12:25:58
ふじさん 有難う御座います。
出来ると判ってうれしいのですが、CGI 習い始めで 1.CGIを起動の
起動でどんな CGIを利用すれば良いのかこの CGI のサンプルの有る
所をお教え願えれば嬉しいのですが、それと、
>[LastName]
>Yasuda
のような形式のメールなら、適当に処理して変数に入れる。
↓
4.フォームに変数の値を埋めこんだHTMLを出力。
適当に処理して変数に入れるの意味も判らず、全くお手上げです。
やはり1から勉強すべきでしょうね。
有難う御座いました。
ふじ
1999/10/18(月) 20:56:10
>1.CGIを起動の起動でどんな CGIを利用すれば良いのか
起動するのは、この一連の処理をするスクリプトそのものです。
>>[LastName]
>>Yasuda
>のような形式のメールなら、適当に処理して変数に入れる。
#とりあえずメールは取って来られたとして・・・
メール本文が一行ずつ配列 @lines に入っているとすると、
while ($line = shift(@lines)){
if($line =~ /\[FirstName\]/){
$first_name = shift(@lines);
}elsif($line =~ /\[LastName\]/){
$last_name = shift(@lines);
}
}
等としてメール本文から各データを取り出して、
print <<END;
Content-Type: text/html
<FORM action="hogehoge">
<INPUT Type="text" value="$first_name" name="FirstName"><br>
<INPUT Type="text" value="$last_name" name="LastName"><br>
</FORM>
END
のようにして値を埋めこんだHTMLを出力、人が見て手動でサブミット。
もしくは、HTMLを出力するのではなくて、
print <<END;
Location: http://hogehoge/cgi-bin/hoge.cgi?FirstName=$first_name&LastName=$last_name
END
としてサブミットさせるとか。
CGI 習い始め
[E-Mail]
1999/10/19(火) 15:28:45
ふじ様 ありがとうございます。
メールがこんな風に
[FirstName]
Nimura
[LastName]
Yoshihiro
[Address1]
Berumezon Namiki 303
1行ずつ空いている場合は
while ($line = shift(@lines)){
if($line =~ /\[FirstName\]/){
$first_name = shift(@lines);
}elsif($line =~ /\[LastName\]/){
$last_name = shift(@lines);
}elsif($line =~/\""/){
$"" = shift(@lines);
}
}
で宜しいのでしょうか
1.CGIを起動の起動でどんな CGIを利用すれば良いのか
起動するのは、この一連の処理をするスクリプトそのものです。
これの意味がわかりません。 宜しければもう少し具体的にご説明
戴ければ助かります。 余りにも初歩的な質問で申し訳ありません
頑張ってやってみます。
有難う御座います。
ふじ
1999/10/19(火) 15:36:07
空行が入っていた場合 while ループの中で何も処理をしないで
次に行くので、特に
>}elsif($line =~/\""/){
>$"" = shift(@lines);
> }
このような処理は要らないです。
>1.CGIを起動の起動でどんな CGIを利用すれば良いのか
>起動するのは、この一連の処理をするスクリプトそのものです。
>これの意味がわかりません。
えーと・・・
「メールを処理してフォームに書き出してサブミットする」
というのがやりたい処理ですよね。
それをやる(つまり上記に書いたような)スクリプト、
という意味なんですが。
とほほ
1999/10/20(水) 01:52:52
フォームAから、Bさんが送信した、メールCが、CGI習いはじめさん
のメールサーバに溜まっているとします。それをフォームDに入れて、
第三者のEさんに、送りたいとのことですが・・・
その作業は自動的に行いたいのでしょうか?
それとも、CGI習いはじめさんがブラウザで1通1通手作業で確認し
ながら行いたいのでしょうか?
CGI 習い始め
[E-Mail]
1999/10/20(水) 18:07:10
ふじ様 とほほ様 お忙しい所有難う御座います。
そうです。 メールが入っ来たのを別のフォームに入れて第三者
に送信致します。 内容はオフラインで送信前に1通1通手作業で確
認する必要があり、現在この作業をコピー貼り付けの作業で行ってお
り、項目が10個所ほどあり時間がかかりこれをオフラインで行いセミ
オート出来ないかと考えた次第です。 宜しくお願い致します。
ふじ
1999/10/21(木) 17:02:03
まず、動作を2つの部分に分けて考えましょう。
1.メールを取ってきてテキストファイルに保存する。
2.メール本文を解析して値を埋めこんだHTMLを書き出す。
1.については、Net::POP3 モジュールなどを使えれば出来るかと。
http://member.nifty.ne.jp/hippo2000/perltips/net/pop3.htm
使えなければ、
http://www.jkc.co.jp/booksupport/perl-inter/index.html
ここからPOPクライアントのサンプルを入手してみるとか。
2.テキストファイルになった本文を解釈する部分は、
以前サンプルソースを書き込みましたよね。
1. 2. が単体で動いたら、それを組み合わせて CGI で
動作するようにすれば、出来上がりです。
[上に]
[前に]
[次に]