ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

PHP/CSS/PERL/DB/SERVERコミュの空メール処理設定及びプログラム[実験ログ]

  • mixiチェック
  • このエントリーをはてなブックマークに追加
■[概要]

特定のメールアドレスに対してメールを送ると、自動的に返信メールを送信し、取得したメールをメールアドレスリストに格納する物を制作。

■[開発環境]
FreeBSD LinuxSERVER上
FetchMail/daemon起動、メール自動取得及びprocへパイプ
ProcMail/パイプで起動、メールをAutoMailRes処理へパイプ
AutoMailRes.pl/パイプで起動、自動返信・保存などの処理
maillist.txt/メールリスト取得保持ファイル
mailbody.txt/自動応答メールFromとBodyなどの設定ファイル

■[.fetchmailrc]
set daemon 120
set nobouncemail

poll mail.*****.***
proto pop3
user empty@*****.***
password **********
fetchall
no mimedecode
mda "/usr/bin/procmail"


■[.procmailrc]
PATH=/bin:/usr/bin:/usr/local/bin
MAILDIR=$HOME/Maildir
DEFAULT=$MAILDIR
LOGFILE=$MAILDIR/procmail.log
LOCKFILE=$HOME/.lockmail

:0
* ^To:.*empty@*****.***
| /home/*****/AutoMailRes.pl

:0
/dev/null

■[AutoMailRes.pl]
#!/usr/local/bin/perl -w

$address = '';
while(<STDIN>) {
chop;
if ($_ =~ /^From:\s*(.+)/) {
$address = $1;
}
}
if ($address eq '') { exit; }

open(OUT, ">>/home/*****/maillist.txt") || die("open");
print OUT $address. "\n";
close(OUT);

@datas = split(/\</, $address);
$datas[1] =~ s/\@/\\\@/g; #// @ マークを処理
$datas[1] =~ s/\>//g; #// <>を処理
$address = $datas[1];

exec("cat /home/*****/mailbody.txt | /usr/sbin/sendmail -t -i ". $address);

■maillist.txt
admin <admin@*****.****>
niku <niku@******.*****>

■mailbody.txt
From: empty@********.***
Subject: 題名はここに記入表示
Content-Transfer-Encoding: 7bi
Content-Type: text/plain

ここから本文がはじまる表示


テストとしてtest

■以上
1度fetchmailが起動したら、daemonで自動チェックにはしるので、cronの設定もいらずにお手軽な感じ。

15万案件程度、別画面あり。

コメント(6)

環境から構築する人は
http://www.geocities.co.jp/SiliconValley-Bay/9678/mail.html#fetchmail
ここらへんが参考になるかと、あとは各名でgoogleとかで検索。
Xserverという共用レンタルサーバをよく利用するが、
なんとメールの内容がftpのディレクトリに飛んでくるので、
MTBっていうんだっけか、メールデーモンのフィルターやらなんやらの
操作なしに、無理やりスクリプトからメールの内容をopenして
あんなことやこんな事ができてしまうなんてステキな時代がやってきてました。

ちなみに.filterやら.aliesとかで、メールとんできた瞬間に、
スクリプトに処理を渡す記述も簡潔明瞭。

うおー腹減ったぞー
はじめまして。
四方家と申します。

perlを勉強し始めまして、PCにlinux環境を作りましたが、perlのパスが通らないのか、*.plというファイルをBASH上で動かそうとしても、COMAND NOT FOUNDと応答されます。この現象について教えてください。どうにもならないです。教えてください。よろしくお願いします。
/////////////////////////////////////////////////////////////////////////
mindgameadvanceさんの内容がこのトピック(空メール処理設定)と関連性が低すぎるため、新規トピックを作成してください。
/////////////////////////////////////////////////////////////////////////

mindgameadvanceさん、

恐らくactive perlを導入されて、システムにperlのパスがちゃんと通っていないという問題かと思います。

perlのパスが通っていない場合の一番最初のチェック。

・installされたperlのディレクトリのperl.exeまでcdで移動して、perl -cw ファイル名 を実行する。
(もしくは、インストールディレクトリ/perl.exe -cw ファイルパス)
を実行して、動作するか確認する。

これがこけるならinstallが成功してないです。

pathの通し方は、ざっとwindowsの方しか見てないので、linuxのパスの通し方はりふぁ参照。


■りふぁ(あわてずゆっくり読まないと読みにくい)

・perlの環境設定関係
http://okwave.jp/qa1655533.html
http://q.hatena.ne.jp/1101968025

・linuxのパス
http://www.itmedia.co.jp/help/tips/linux/l0284.html
http://cisco250.hp.infoseek.co.jp/Linux/path/


んで、残念ながらこのトピックのテーマとは大きく外れる内容になります。
せっかくmindgameadvanceさんが書き込みを行っている事を気づく方が少なくなりますし、空メールの処理に関するコメントと勘違いしてしまいます。

ので、別途新規トピックを作成して、他の方にも内容が判る様にしてください。
すみません。トッピックを立てるのが申し訳なく、突然割り込みました。結局わかりました。どうもありがとうございました。

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

PHP/CSS/PERL/DB/SERVER 更新情報

PHP/CSS/PERL/DB/SERVERのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。