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

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

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

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

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

なんちやって文系プログラマーな私にアドバイスをいただける方は
いらっしゃないのでしょうか。まじ困ってます。
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
■ このスレッドは過去ログ倉庫に格納されています