トップページphp
14コメント7KB

POPサーバーに送信したメールをCGIから読み込む

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。01/11/21 15:23ID:JSsWPAv+
サーバーにメールを送信すると、自動的にCGIが動作して
出力結果が返信される、という類のスクリプトの書き方を
研究、というか作る必要性にせまられています。

.forwardを使って、特定のCGIに受け渡す部分までは
わかるのですがそこから先、届いたメール形式のデータを
分割して、プログラムとして扱う、という部分がかなりちんぷんかんぷんです。

CGIからsendmailを起動させて送信するプログラムはそこらじゅうにあるので
まだ勉強できるのですが、逆のもの、すなわち、届いたメールから
CGIが起動し、アクションを起こす、というものがなかなか見つかりません。

なんちやって文系プログラマーな私にアドバイスをいただける方は
いらっしゃないのでしょうか。まじ困ってます。
0002名無しさん@お腹いっぱい。01/11/21 15:48ID:Cob8vHD0
つーかサーバー側でメール受信用の常駐プログラムを
起動させておく。
(或いはcrontab)

Perlでやるなら、NET::POP3 あたりを利用する。
0003名無しさん@お腹いっぱい。01/11/21 16:09ID:???
スレ立てんな。

-------------------天文学的駄スレ---------------------
0004名無しさん@お腹いっぱい。01/11/21 16:13ID:???
1=[cgi:41752]
0005名無しさん@お腹いっぱい。01/11/21 18:23ID:???
そんな事より1よ、ちょいと聞いてくれよ。スレとあんま関係ないけどさ。
昨日、鏡見たんです。鏡。
そしたらなんかめちゃくちゃ不細工な奴がっ映ってるんです。
で、よく見たら、いや、よく見なくても、それ俺なんです。
もうね、アホかと。馬鹿かと。
俺な、不細工にも程があるだろうが、ボケが。
超不細工だよ、超絶不細工。
なんか頭も薄くなってるし。デブ、ハゲ、オクメ、ニジュウアゴの4重苦か。死にて―よ。
子供が見たら泣き出すの。もう生きてらんない。
俺な、こりゃ人間の顔じゃねえぞ。猿だぞ。
顔ってのはな、もっと人間っぽくしてるべきなんだよ。
Uの字テーブルの向かいに座った奴がいつ気分悪くなってもおかしくない、
吐くか殴られるか、そんな顔じゃねーか俺は。女子供は、すっとんで逃げる。
で、やっと落ちついたかと思ったら、俺、鏡にむかって、ファイト、とか言ってるんです。
そこでまた自己嫌悪ですよ。
あのな、キャンディキャンディか俺は。ボケが。
二目と見られぬ顔して何が、ファイト、だ。
俺は本当に人間なのかと問いたい。問い詰めたい。小1時間問い詰めたい。
俺、進化の歴史から取り残されてるんちゃうんかと。
クロマニョン人の俺から言わせてもらえば今、俺の間での最新流行はやっぱり、
整形、これだね。
整形失敗ギョクサイ。これが俺の生きる道。
整形っては金がかかる。そん代わり成功率が少なめ。これ。
で、それに韓国エステ(ぼたくり)。これ最強。
しかしこれをやっちまうと人間でないことを完全に認めてしまう、諸刃の剣。
真人間にはお薦めできない。
まあお前ら真人間は、俺のぶんまで幸せになってくださいってこった。
0006名無しさん@お腹いっぱい。01/11/21 18:36ID:Op+sAjUo
くだらんこと書くな
0007名無しさん@お腹いっぱい。01/11/21 18:44ID:???
>>6
ageんなボケ
0008名無しさん@お腹いっぱい。01/11/21 23:37ID:???
>>4
[cgi:41752] の奴っていろんなMLで見るけど、答えてもらっても
それに対しての返信は滅多に見ない。
2ちゃんねるでいえば、スレッド立て逃げのボケ。
0009名無しさん@お腹いっぱい。01/11/22 05:44ID:???
.forwardとかから起動するんだったらSTDINを処理するだけじゃん。
procmailとか、FMLとか見れば?

ま、いいや。

perlだったら、
my @line = <>;
すりゃ@lineにはいるよ。

@lineの解析にはMail::Internetあたりを使おう。
0010JAPU01/11/22 07:00ID:???
/FYI/
それの高機能版っぽい MIME::Parser ってのもあります。
さんぷる。

#! /usr/bin/perl -w
use strict;
use MIME::Parser;
use Jcode;
my $parser = new MIME::Parser;
my $entity = $parser->read(\*STDIN);
parse($entity);
sub parse
{
my $entity = shift;
my $ilv = shift || 0;
local $_;
print indent($ilv), "--------\n" if $ilv;
print indent($ilv), "[", $entity->head->mime_type("Content-Type"), "]\n";
my $type = $entity->head->mime_type("Content-Type");
if($type =~ /^multipart/i or
$type =~ /^message/i) {
foreach my $p ($entity->parts()) {
parse($p, $ilv + 1);
}
} else {
my $body = $entity->bodyhandle->as_string();
$body =~ s/^/indent($ilv)/egm;
print $body;
}
}
sub indent { " " x shift }
__END__

どうでもいいけど、2chって80番ポートがopenになっているだけでもダメなのね...
ipfwで蹴っちゃうか。

# 改行削ったので見辛いかも。
0011名無しさん@お腹いっぱい。01/11/28 02:08ID:???
なんでそんなに駄スレ呼ばわりされてるんだ?
俺的には十分参考になったぞ。

あ、俺は1じゃないからな(w
0012名無しさん@お腹いっぱい。01/11/28 13:34ID:???
>>11
板違いだからだろ。.forwardからプログラム起動して
なんらかの返信を返すなんてののどこにWWWやCGIがからむんじゃ。
さらに2なんか質問すら理解してない。
#ほんとにCGIの質問だったとしても単発スレは困るけどね。
0013名無しさん@お腹いっぱい。01/12/23 11:04ID:ZDYr1MNI
http://www.comm.ics.tut.ac.jp/tomo/cgi-bin/memo.cgi/junk/1

ここ見たらどう、すでにあるよ。
おいら、これがややこしくて設置もできない厨房なので、
1の方がKENT-WEBなみに設置のしやすいcgi作成してくれること
希望。よろしくです。
0014hage01/12/23 15:51ID:???
hage
■ このスレッドは過去ログ倉庫に格納されています