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

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

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

procmailの代わりに(rpmを作成して)maildropをインストールする(RPM編) では、CentOS/Scientific Linux(RedHat系)のためのRPMバイナリパッケージを作成しました。

今回は、maildropを単純にmakeからインストールしてみます。
この方法では、CentOS/Scientific Linuxはもちろんのこと、 Debian/Ubuntuでも最新版をインストールすることができます。

Debian/Ubuntuでは、正式なリポジトリからDEBバイナリーパッケージが提供されていますから、あえてmakeインストールする必要もないと思いますが、 ここでは、最新版をどうしてもインストールしたい場合など、makeインストールする場面もあるかと思いますので、簡単に解説してみます。

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の最新版をmakeインストールする

では、早速、maildropの最新版をmakeインストールしてみましょう。

  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
    ...
    # maildropの最新ソースコード一式を解凍します。
    $ tar xfj maildrop-2.6.0.tar.bz2

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

    gcc g++ make は、最低限必要なパッケージです。
    加えて、maildropをmakeするのに 各ディストリビューションにて、以下のようなライブラリが必要となり、それぞれインストールします。


    CentOS/Scientific Linux : gdbm-devel pcre-devel が必要です。
    # gcc g++ make rpmbuild をインストールします。微妙にパッケージ名が違うので注意が必要です。
    $ yum -y install gcc gcc-c++ make
    ...
    # maildropに必要なライブラリをインストールします。
    $ yum -y install gdbm-devel pcre-devel 
    ...
    Debian/Ubuntu : libgdbm-dev libpcre3-dev が必要です。
    # gcc g++ make rpmbuild をインストールします。微妙にパッケージ名が違うので注意が必要です。
    $ aptitude install gcc g++ make
    ...
    # maildropに必要なライブラリをインストールします。
    $ aptitude install libgdbm-dev libpcre3-dev
    ...

  3. make インストールします。

    make インストールするには、以下の手順にて随時実行していきます。

    1. configure を実行

      make環境のチェックと、Makefileの作成を実施します。

      $ cd maildrop-2.6.0
      [maildrop-2.6.0]$ ./configure
      ...
      configure: creating ./config.status
      config.status: creating xconfig.h
      config.status: creating Makefile
      config.status: creating README.html
      config.status: creating testsuite
      config.status: creating config.h
      config.status: executing depfiles commands
      config.status: executing libtool commands

      configure で正常に終了した場合は、Makefileから config.h まで 次のmakeに欠かせないファイル一式が作成されます。


    2. make を実行

      実際にmakeを実行します。

      [maildrop-2.6.0]$ make
      ...

      特にエラーがなければOKです。


    3. make インストールを実行

      最後にmake インストールを実行します。

      [maildrop-2.6.0]$ make install-strip
      ...
      /bin/bash /usr/local/src/maildrop-2.6.0/install-sh -d /usr/local/bin
      /bin/bash /usr/local/src/maildrop-2.6.0/install-sh -c -s maildir/deliverquota /usr/local/bin/deliverquota
      cd /usr/local/bin; rm -f maildrop.deliverquota
      /bin/bash /usr/local/src/maildrop-2.6.0/install-sh -d /usr/local/bin
      for f in maildrop mailbot reformail ; do \
                      /bin/bash /usr/local/src/maildrop-2.6.0/install-sh -c -s maildrop/$f /usr/local/bin/$f ; \
              done
      /bin/bash /usr/local/src/maildrop-2.6.0/install-sh -c -s liblock/lockmail /usr/local/bin/lockmail
      /bin/bash /usr/local/src/maildrop-2.6.0/install-sh -c -s maildir/maildirmake /usr/local/bin/maildirmake
      /bin/bash /usr/local/src/maildrop-2.6.0/install-sh -c -s rfc2045/reformime /usr/local/bin/reformime
      /bin/bash /usr/local/src/maildrop-2.6.0/install-sh -c -s rfc2045/makemime /usr/local/bin/makemime
      test "00" = "00" && exit 0; \
                      /bin/bash /usr/local/src/maildrop-2.6.0/install-sh -c -s makedat/makedatprog /usr/local/bin/makedatprog
      ...

      各ファイルのインストール先は、上記のように出力されます。ここでは、すべての実行ファイルは、/usr/local/bin/ へインストールされています。

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

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

      また、manが必要であれば、以下のようにインストールします。

      [maildrop-2.6.0]$ make install-man
      ...

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


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

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

    $ 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.
    こんな感じで、細かい情報が出力されますので、どこでエラーが発生したかわかるようになります。

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

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

    • Postfixの場合

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

      # maildropのパスを確認します。
      $ which maildrop
      /usr/local/bin/maildrop
      
      # Postfixのメイン設定ファイル(/etc/postfix/main.cf)にmaildropを指定します 。
      $ vim /etc/postfix/main.cf
      ...
      #mailbox_command = /some/where/procmail -a "$EXTENSION"
      mailbox_command = /usr/local/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/local/bin/maildrop
      
      # Sendmailのメイン設定ファイル(/etc/mail/sendmail.mc)にmaildropを指定します 。
      $ vim /etc/mail/sendmail.mc
      ...
      dnl define(`PROCMAIL_MAILER_PATH', `/usr/local/bin/procmail')dnl
      define(`PROCMAIL_MAILER_PATH', `/usr/local/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  ]


  6. 実際にメール送信して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です。



サーバー1台だけにmaildropをインストールするなら、makeインストールが全然楽です。 ただ、複数台へ同じようにmaildropをインストールしなければならない場合は、やっぱりバイナリパッケージが楽です。 その場合、CentOS/Scientific Linuxでは、RPMでしょうし、Debian/Ubuntuでは、DEBでしょう。
RPMは、正式なサポートはないものの、procmailの代わりに(rpmを作成して)maildropをインストールする(RPM編) で解説したように簡単に作成できますから、あとはRPMを公開すればOKです。
DEBは、正式なパッケージがDebian/Ubuntuでありますから、それをそのままインストールした方が楽です。 多少、バージョン的に古い場合がありますが、メンテナンスの手間から考えても正式なパッケージを利用していた方がアップデートも楽でしょう。

今回は、最新のmaildropをmakeインストールしてみました。通常のバイナリパッケージとは、インストール先が異なるぐらいです。 また、ここでは、あまり触れていませんが、./configure には、maildropのすごい量の機能の有効・無効の指定を行うことができます。 設定を変更した場合は、必要となるライブラリが増えることもあります。
(ここでは、あくまで最低限必要なものとして、特に指定せずに実行しています。)
ご利用のブラウザは、広告ブロック(AdBlockなど) が適用となっていませんか?
このサイトでは、コンテンツの一部が非表示、あるいは、コメント、お問い合わせの投稿ができない検索ができないことがあります。


関連記事 :

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

procmailでメールボックスのパーミッションが660になってしまう対処について調べてみた でも指摘したように、procmailには、メンテナ ...

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

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

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

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

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

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

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

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



コメントを投稿 :

お名前 *

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

サイトアドレス

コメント *

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




最近投稿の記事

[ 画像提供元 : 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.2327 [s]