人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

メールを受信すると整形せず(添付ファイルも保持)そのまま指定したアドレスaaa@hogehoge.comに転送。ただし転送時に差出人アドレス(from:)をbbb@hogehoge.comに書き直す処理を行う「perlやrubyなどのスクリプト」「サーバ上で動作するソフトウェア」あるいは「procmailやsendmailなどのサーバの設定方法」はないでしょうか?いわゆるリメーラ的な処理です。

誰でも投稿可能な画像投稿掲示板を作成したのですが、登録を受け付けるメールアドレスを指定せねばならず、上記のような処理を行うものを求めています。

通常のメーラでフィルタ処理→転送すれば可能なのですが、あくまでサーバ上で動作するものを求めています。

●質問者: hwtnv
●カテゴリ:インターネット ウェブ制作
✍キーワード:AAA Perl procmail Ruby sendmail
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● hsada
●10ポイント

一番簡単なのはgmailを新規取得してそのメールを受信先とし

gmailの設定で特定のアドレスを転送先に設定するといいと思います。

http://mail.google.com

rubyのスクリプトでメールを扱う場合は送受信はnet/pop,net/smtpを使ったサンプルが標準マニュアルに載っています。

オンライン版は良くしぬので以下をDLしてmailで検索してみてください。

http://elbereth-hp.hp.infoseek.co.jp/ruby.html

転送であれば、受信したのをそのまま転送すればいいと思います。

送信先などを書き換える場合はtmailライブラリを使うといいと思います。

http://i.loveruby.net/ja/projects/tmail/

gem install tmail でインストールできるはずです。

◎質問者からの返答

gmailで自動転送すると差出人アドレスがそのまま保持されてしまいますので、今回の目的には合致していません。

またrubyのマニュアルやサンプルではなく、実際に動く実例を求めています。

よろしくお願いします。


2 ● tanukichi800
●80ポイント ベストアンサー

.forwardを使って特定ユーザーに来たメールをperlに食わせ、From:行を書き換えてやれば簡単に行えます。


自動転送を行うユーザー名をhogeと、転送先のアドレスをfoo@example.jp、perlスクリプトを/home/user/tools/forward.plに置くと仮定します。


.forwardに

\hoge, "|/usr/bin/perl /home/user/tools/forward.pl"

と記述します。


/home/user/tools/forward.plの内容は例えば下記の通りです。

(実際に運用される際は環境依存の部分もありますので、スクリプトを十分にテストして下さい)

#!/usr/bin/perl


$flg = 0; # From行を既に書き換えたことを覚えておくフラグ

$buffer = ""; # メール本文を蓄えておくバッファ


while(<>){

if(/^From:/ and !$flg){

$buffer.= "From: foo@example.jp\n";

$flg++;

}else{

$buffer = $_;

}

}


open(MAIL,"| mail");

print MAIL $buffer;

close(MAIL);


exit;

参考:

http://www.hayagui.com/mail.html


3 ● tanukichi800
●60ポイント

すみません、先ほどのスクリプト、凡ミスがありました。


11行目

誤:$buffer = $_;

正:$buffer.= $_;

でした。


ダミーURLをつけるのも何なので、別の参考URLをつけておきます。

http://oshiete1.goo.ne.jp/qa2930662.html

送信部分をいじる際に役立つと思います。

◎質問者からの返答

ありがとうございます!さっそくトライしてみます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ