レンタルサーバー・自宅サーバー設定・構築のヒント
レンタルサーバー・自宅サーバー設定・構築のヒント - レンタルサーバー・自宅サーバーの設定・構築情報を公開しています。

C5 C6 S6

procmailの代わりに(rpmを作成して)maildropをインストールする(RPM編)

2013年1月30日 2015年5月14日
maildrop

procmailでメールボックスのパーミッションが660になってしまう対処について調べてみた でも指摘したように、procmailには、メンテナンスの問題を含めて継続利用には、 少々、考えざると得ない時期に来たか?と思いまして、maildropへ完全移行しようと思います。

今回は、maildropをインストールしたいわけですが、これが、CentOS/Scientific Linuxの通常のリポジトリには、パッケージがprocmailはありますが、maildropはありません

そうなると自力でmakeすることになります。ここでは、自前でrpmを作成して、rpmを使ってインストールしてみます。Debian/Ubuntuでは、バイナリーパッケージがありますからaptで簡単にインストールすることができます。

maildropとは、
Courier Mail Serverによって使用されるMDA(Mail Delivery Agent) です。maildrop は、MDA(Mail Delivery Agent)の機能のほかに、フィルター機能を有しています。 maildropは、stdin(標準入力)からメールを受信し、Maildir、mboxのいずれの形式にも配信します。
maildropは、メンテナンスされていないprocmailのMDAに代わるものとして提案されています。
(Wikipedea 原文)
maildrop is a Mail delivery agent used by the Courier Mail Server. The maildrop MDA also includes filtering functionality. maildrop receives mail via stdin and delivers in both Maildir and mbox formats.
maildrop has been suggested as an alternative to the unmaintained procmail MDA.
MDAとは、
メール配送エージェント(Mail Delivery Agent、MDA)で、メールサーバの中で、 メール転送エージェント(MTA)によって振り分けられた電子メールを受信者に配送する機能のこと言います。

maildropの最新rpmを作成する

CentOS/Scientific Linux(Redhat系)用に 正式なrpmはありません。そのため、ここでは、最新のソースコード一式をダウンロードしrpmを自力で作成してみます。
と、いっても必要なライブラリさえ整っていれば、そんなに難しいことではありません。
では、早速、maildropの最新rpmを作成してみましょう。

  1. maildropの最新ソースコード一式をダウンロードします。
    # maildropの最新ソースコード一式をダウンロードします。
    # maildropの最新版は、このとき2.6.0です。
    $ wget "http://sourceforge.net/projects/courier/files/maildrop/2.6.0/maildrop-2.6.0.tar.bz2/download" -O maildrop-2.6.0.tar.bz2
    ...

  2. maildropのrpmを作成するのに必要なパッケージをインストールします。

    gcc g++ make rpmbuild は、最低限必要なパッケージです。
    加えて、maildropをmakeするのに必要なライブラリが、
    gdbm-devel pcre-devel libidn-devel fam-devel が必要です。

    # gcc g++ make rpmbuild をインストールします。微妙にパッケージ名が違うので注意が必要です。
    $ yum -y install gcc gcc-c++ make rpm-build
    ...
    # maildropに必要なライブラリをインストールします。
    $ yum -y install gdbm-devel pcre-devel libidn-devel fam-devel
    ...

  3. rpmを作成します。

    rpmの作成は、rpmbuildコマンド1発で作成できます。すごいですね。

    # rpmbuild では、直接ダウンロードしたmaildropアーカイブファイルを指定してrpmを作成します。
    $ rpmbuild -ta maildrop-2.6.0.tar.bz2
    ...
    書き込み完了: /root/rpmbuild/SRPMS/maildrop-2.6.0-1.src.rpm
    書き込み完了: /root/rpmbuild/RPMS/i386/maildrop-2.6.0-1.i386.rpm
    書き込み完了: /root/rpmbuild/RPMS/i386/maildrop-devel-2.6.0-1.i386.rpm
    書き込み完了: /root/rpmbuild/RPMS/i386/maildrop-man-2.6.0-1.i386.rpm
    実行中(%clean): /bin/sh -e /var/tmp/rpm-tmp.CBOYEj
    + umask 022
    + cd /root/rpmbuild/BUILD
    + cd maildrop-2.6.0
    + rm -rf /root/rpmbuild/BUILDROOT/maildrop-2.6.0-1.i386
    + exit 0

    これだけです。
    オプションで、-ta を指定していますが、これは、アーカイブファイルからRPMファイルとSRPMファイルをビルドすように指示しています。
    インストールするだけのRPMだけで良い場合は、-tb を指定します。

    これでエラーが出なければOKです。

    作成されたRPMファイルがどこに作成されたかは、最後に出力されます。
    上記の例では、以下のようになります。
    /root/rpmbuild/SRPMS : ソースパッケージのディレクトリ
    /root/rpmbuild/RPMS/i386/: 32bitバイナリパッケージのディレクトリ

    この中でインストールに必要なものは、
    /root/rpmbuild/RPMS/i386/maildrop-2.6.0-1.i386.rpm です。


maildropをインストールする

  1. maildropをrpmからインストールします

    rpmさえできれば、インストールは簡単ですね。
    以下は、32bit版のmaildropをインストールした例です。

    $ cd /root/rpmbuild/RPMS/i386/
    $ rpm -ivh maildrop-2.6.0-1.i386.rpm
    ...

    rpmのインストールを終えたら、メールボックスの作成のために suid , sgid の権限を付与しておきます。

    $ which maildrop
    /usr/bin/maildrop
    $ chmod ug+s /usr/bin/maildrop
    suid , sgid を設定していないと、メールボックスが作成されていない状態(要は初めてメールが着た)のとき、メールボックスが開けないというエラー(以下参照)が出力されます。
    maildrop[2225]: Unable to open mailbox.

    これでインストールまでOKです。
    簡単だったですね。


  2. 簡単な動作確認をしておきます。

    動作確認は、以下のようにして行うことができます。

    $ echo TEST|maildrop -d hoge

    これで、ユーザhogeへ”TEST”という情報がメールボックスへ配信されればOKです。

    $ cat /var/mail/hoge
    TEST
    もし、動作がおかしいなと思ったら、オプションに -V9 を指定してデバッグ情報を出力するようにしてみましょう。
    $ echo TEST|maildrop -V9 -d hoge
    maildrop: Changing to /home/hoge
    Message start at 0 bytes, envelope sender=hoge
    Tokenized eof
    maildrop: Attempting .mailfilter
    Tokenized cc
    Tokenized string: "! hanako"
    Tokenized ;
    Tokenized ;
    Tokenized eof
    .mailfilter(1): Opening logfile /home/hoge/.maildrop.log
    maildrop: Delivering to |/usr/sbin/sendmail -oi -f ''  hanako
    maildrop: Delivery complete.
    maildrop: Delivering to /var/mail/hoge
    maildrop: Flock()ing /var/mail/hoge.
    maildrop: Appending to /var/mail/hoge.
    maildrop: Delivery complete.
    こんな感じで、細かい情報が出力されますので、どこでエラーが発生したかわかるようになります。

  3. MTAにmaildropを組み込みます。

    あとは、実際のメールを受信したときにmaildropで配信するようにMTAの設定を行います。
    ここでは、MTA として PostfixSendmail について解説してみます。

    • Postfixの場合

      Postfixのメイン設定ファイル(/etc/postfix/main.cf) にmaildropを指定してあげればOKです。
      そのためには、maildropのパスを確認しておきます。

      # maildropのパスを確認します。
      $ which maildrop
      /usr/bin/maildrop
      
      # Postfixのメイン設定ファイル(/etc/postfix/main.cf)にmaildropを指定します 。
      $ vim /etc/postfix/main.cf
      ...
      #mailbox_command = /some/where/procmail -a "$EXTENSION"
      mailbox_command = /usr/bin/maildrop -d ${USER}
      ...

      上記の例では、procmailを使っていたところをmaildropに変えたイメージです。

      編集を終えたら再読み込みします。

      $ /etc/init.d/postfix reload
      postfix を再読み込み中:                                    [  OK  ]

    • Sendmailの場合

      Sendmailのメイン設定ファイル(/etc/mail/sendmail.mc) にmaildropを指定してあげればOKです。
      そのためには、maildropのパスを確認しておきます。

      # maildropのパスを確認します。
      $ which maildrop
      /usr/bin/maildrop
      
      # Sendmailのメイン設定ファイル(/etc/mail/sendmail.mc)にmaildropを指定します 。
      $ vim /etc/mail/sendmail.mc
      ...
      dnl define(`PROCMAIL_MAILER_PATH', `/usr/bin/procmail')dnl
      define(`PROCMAIL_MAILER_PATH', `/usr/bin/maildrop')dnl
      ...
      dnl FEATURE(local_procmail, `', `procmail -t -Y -a $h -d $u')dnl
      FEATURE(local_procmail, `', `maildrop -d $u')dnl
      ...
      # 編集を終えたら mcファイルからcfファイルを作成します。
      $ m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf

      上記の例では、procmailを使っていたところをmaildropに変えたイメージです。

      編集を終えたら再読み込みします。

      $ /etc/init.d/sendmail reload
      sendmail を再読み込み中:                                    [  OK  ]


  4. 実際にメール送信してmaildropの動作を確認してみます。

    maildropには、いろんな機能がありますが、ここでは単純にmaildropが動作しているかの確認だけなので、
    hoge宛のメールをhanakoさんへCCで転送してみます。

    まず、hogeさんのmaildrop設定を、hogeさんのホームディレクトリに .mailfilter と名前で作成します。 その内容は、以下のように hanakoさんへメールのコピーだけです。

    cc "! hanako"
    ローカルユーザの場合は、上記でOKです。外部ユーザ(メールアドレス)の場合は、しっかりメールアドレス記述する必要があります。以下は、その例です。
    cc "! hanako@example.com"
    また、ここで.mailfilter のパーミッションを 600 に設定しておきます。パーミッションを設定しないとエラー (以下参照 ) となります。
    maildrop: Cannot have world/group permissions on the filter file - for your own good.
    以下のようにパーミッションを変更しておきます。また、追加で所有者も確実にhogeにしておきます。
    $ chown hoge. ~hoge/.mailfilter
    $ chmod 600 ~hoge/.mailfilter

    編集を終えたら、hogeさん宛にメール送信してみましょう。 確認は、できれば外部サーバーからのメール送信して、動作を確認した方が良いですが、内部からmailコマンドでもmaildropだけの動作確認としてはOKでしょう。以下はその例です。

    $ mail hoge
    Subject: Test-maildrop
    This is Test-maildrop.
    .
    EOT

    このメールが、hoge,hanako それぞれのメールボックスに配信されればOKです。



今回は、ここまでです。どうですか?うまく転送できましたか?

最近では、メールクライアントの機能が豊富になってきたので、メールの振り分けやスパム対策としてのMDAの用途の限定的にはなってきましたね。 ただ、そうは言っても便利な点も多々ありますから、手放せない方には、procmailもそろそろ限界かとも思いますので、maildropへの切り替えをおすすめします。
ご利用のブラウザは、広告ブロック(AdBlockなど) が適用となっていませんか?
このサイトでは、コンテンツの一部が非表示、あるいは、コメント、お問い合わせの投稿ができない検索ができないことがあります。


関連記事 :

procmailの代わりに(makeを使って)maildropをインストールする(make編)

procmailの代わりに(rpmを作成して)maildropをインストールする(RPM編) では、CentOS/Scientific Linu ...

maildropを使ってメール受信時に携帯へのお知らせメールを自動送信してみる

以下の記事では、maildropのインストールおよび簡単な使い方について解説してきました。 procmailの代わりに(rpmを作 ...

procmailの代わりにmaildropを使ってみる(メールの振り分けから自動応答(返信)まで)

以下の記事では、maildropのインストールについて解説してみました。 procmailの代わりに(rpmを作成して)maild ...

CentOS(Scientific Linux)で postfix を使ってみる

Debian(Ubuntu)で postfix を使ってみる では、Debian/UbuntuへのPostfixの対応について書きました。 ...

procmailでメールボックスのパーミッションが660になってしまう対処について調べてみた

Dovecotでfchmodのエラーが出た時の対処 でエラーの本当の原因は、メールボックスのパーミッションにグループの権限が付与される(660) ...



コメントを投稿 :

お名前 *

メールアドレス *
( メールアドレスが公開されることはありません。)

サイトアドレス

コメント *

* 印の項目は、入力が必要な項目です。




最近投稿の記事

[ 画像提供元 : Amazon ] 先日、1TBのディスクの入れ替え時にバックアップをとろうとディスクコピーを行いました。 その際 ...

Windows で Linux ファイルシステム Ext4 のディスクをマウントするには? Ext3Fsd が、おそらく、最も簡単なツール ...

今回は、Windows で Compass を使ってみました。 Compass とは、 Sass(サス、Syntactica ...

今回は、Anti Adblock を使ってみました。 Anti Adblock とは、 そもそも Adblock という ウェブ ...

デスクトップ環境でない サーバーで、Webページのキャプチャー画像をコマンドで撮る には、wkhtmltoimage, CutyCapt ...


さくらのVPS 全プラン リニューアルです。(石狩(北海道)も選択可)


root権限ありで ¥685 / 月 ~ と非常にリーズナブルな CPU 1(core)の 512 プランから、 最高 CPU 10(core), メモリ 32(GB), SSD容量 800(GB) までとプランが充実。
ディスクは、SSDとHDDの選択が可能になった他、データセンターは人気の東京、石狩(北海道)となりました。

また、どのプランでも好きなOSが選べます
( CentOS, Fedora, Scientific Linux, FreeBSD, Ubutu, Debian )

管理人もおすすめのVPSです。
試用期間がありますから、一度、お試しを!!

詳しくは、http://vps.sakura.ad.jp/さくらのVPSのサイトへ へどうぞ!!

カテゴリ


Serverman@VPS 完全1ヶ月無料 キャンペーン実施中です。


Serverman@VPS 完全1ヶ月無料 キャンペーン実施中です。
最近、スワップにも対応した Serverman@VPS は、かなりリーズナブルかもです。

  • メモリ1GB~2GBのEntryプラン :月額:490円
  • メモリ2MB~4GBのStandardプラン :月額:980円
  • メモリ4GB~8GBのProプラン :月額:1,980円

新規申し込みで1ヶ月間完全無料となるキャンペーンを実施中です。
Serverman@VPSの特徴は、安さとIPv6対応です。また、初期設定費0円もポイントです。

IPv6でちょっと遊んでみたい方には、おすすめかもしれませんね。最低利用期間もありませんから、気に入らないときは即解約もできます。

Serverman@VPSの詳細については、 http://dream.jp/vps/ Serverman@VPSのサイトへへどうぞ。



KVM採用 ConoHa VPSは、時間単位で借りれる便利なVPSです。


ConoHa VPS は、初期設定費0円最低利用期間無し時間単位で清算可能、 さらに、Web APIを使って自動化を図ることもできる便利なVPSです。

海外サーバー設置も可能で、ローカル接続にも対応と、かなり、機能豊富なサーバーです。

新規ユーザ登録で、クーポンもらえますから、まずは、お試しですね。

ConoHa VPSの詳細については、
http://www.conoha.jp/ へどうぞ。

KVM採用 お名前.com VPS(KVM) 2G プラン 初期設定費無料 キャンペーン 実施です。


メモリ2GBプラン CPU:3core、Disk:200GB
月額:1,153円から (初期設定:1,680円0円)

さくらのVPSがリニューアルされてもなんのその。
1GBメモリ / 2Core を ¥834 – の格安価格で提供中です!
間違いなくスペックからすると割安感ありです。
年間割引時の途中解約で返金がないのは、 ちょっと残念ですが、それでもこの割安感は魅力です。

まずは、お試しですね。

お名前.com VPS(KVM)の詳細については、
http://www.onamae-server.com/vps/ へどうぞ。(お試し期間が15日あります。)



  • ソーシャルブックマーク

  • はてなブックマークへ追加するはてな登録数
ページトップへ
Time : 0.2228 [s]