sendmailX関連(sm-X)


sendmail X 1.0.PreAlpha3.0 <2006/03/23更新>

sendmailX をMSA(Mail Submission Agent)としてだけ利用してみます。 現状ではSTARTTLS+AUTH(CRAM-MD5)で使用できています。

なお、1.0.PreAlpha1.0, 0.1.Beta1.0ではそのままではAUTHのコードに問題があり認証が失敗してしまいます。これを回避するにはsmtps/smtps.cへのパッチが必要となります(次バージョンではこのバグは修正される予定です)。 1.0.PreAlpha3.0で修正されました。

環境

OS: NetBSD 3.0
smX: 1.0.PreAlpha3.0

インストール

SASLで使用しているBerkeleyDBとの整合性のため、付属のではなくてSASLで使 用しているものと同じもの(Berkeley-DB 4.4系)を使用します。

% tar zxvf smX-1.0.PreAlpha3.0.tar.gz
% cd smX-1.0.PreAlpha3.0

NetBSDでdbがリンクできるように以下のパッチをあてます。

--- configure   2006-02-01 09:34:30.000000000 +0900
+++ configure   2006-03-02 22:45:02.000000000 +0900
@@ -3558,7 +3558,7 @@
                bdb_wo_fdatasync="unknown"
        if test -d "$with_bdb_lib"; then
            BDB_LIBADD="$with_bdb_lib"
-           for dbname in db-4.3 db4.3 db43 db4-4.3 db-4.2 db4.2 db42 db4-4.2 db-4.1 db4.1 db41 db
+           for dbname in db4-4.4 db-4.3 db4.3 db43 db4-4.3 db-4.2 db4.2 db42 db4-4.2 db-4.1 db4.1 db41 db
            do
                BDB2_SAVE_LIBS=$LIBS
                LIBS="$LIBS $BDB_LIBADD/lib${dbname}.a"
@@ -3672,7 +3672,7 @@
                LIBS=$BDB2_SAVE_LIBS
            done
        else
-           for dbname in db-4.3 db4.3 db43 db4-4.3 db-4.2 db4.2 db42 db4-4.2 db-4.1 db4.1 db41 db
+           for dbname in db4-4.4 db-4.3 db4.3 db43 db4-4.3 db-4.2 db4.2 db42 db4-4.2 db-4.1 db4.1 db41 db
            do
                BDB2_SAVE_LDFLAGS=$LDFLAGS
                LDFLAGS="$LDFLAGS -l${dbname}"

コンパイルします。

% mkdir obj.netbsd
% cd obj.netbsd
% ../configure --prefix=/usr/local \
  --enable-TLS --enable-SASL --with-sasl-libdir=/usr/pkg/lib --with-sasl-incdir=/usr/pkg/include \
  --disable-included-bdb --with-bdb-incdir=/usr/pkg/include/db4 --with-bdb-libdir=/usr/pkg/lib
% make

# groupadd  -g 260 smxs
# groupadd  -g 261 smxq
# groupadd  -g 262 smxc
# groupadd  -g 263 smxm
# groupadd  -g 264 smx
# useradd  -G smxc,smxm -g smxs -u 260 smxs
# useradd  -G smxm -g smxq -u 261 smxq
# useradd  -g smxc -u 262 smxc
# useradd  -g smxm -u 263 smxm
# useradd  -g smx -u 264 smx

# make install

設定

smx.conf設定

# cd /etc/smx
# vi smx.conf

smtps MSA {
 auth {
     trusted_mechanisms="CRAM-MD5 DIGEST-MD5";
     flags = { noplaintext };
 }
 tls { cert_file = "/var/db/CA/certs/smxcrt.pem";
	key_file = "/var/db/CA/smxkey.pem";
	CAcert_file = "/var/db/CA/cacert.pem";
	CAcert_directory = "/var/db/CA/certs";
 }
 log_level = 11;
 log { facility=mail; ident="MSA"; }
 CDB_gid = 262;
 listen_socket { type = inet; port = 587; }
 start_action = pass;
 pass_fd_socket = smtps/msafd;
 user = smxs;
 path = "/usr/local/libexec/smtps";
 arguments = "smtps -I 1 -N MSA -f /etc/smx/smx.conf";
}
smtpc {
 log_level = 12;
 tls { cert_file = "/var/db/CA/certs/smxcrt.pem";
	key_file = "/var/db/CA/smxkey.pem";
	CAcert_file = "/var/db/CA/cacert.pem";
	CAcert_directory = "/var/db/CA/certs";
 }
 log { facility=mail; ident="smtpc"; }
 wait_for_server = 4;
 start_action = wait;
 user = smxc;
 path = "/usr/local/libexec/smtpc";
 arguments = "smtpc -f /etc/smx/smx.conf";
}

qmgr {
 log_level = 12;
 log { facility=mail; ident="qmgr"; }
 wait_for_server = 4;
 wait_for_client = 3;
 start_action = wait;
 user = smxq;
 restart_dependencies = { smtps, smtpc, smar };
 path = "/usr/local/libexec/qmgr";
 arguments = "qmgr -f /etc/smx/smx.conf";
}
smar {
 log_level = 12;
 log { facility=mail; ident="smar"; }
 nameserver = { 192.168.1.1, 192.168.1.2 };
 start_action = wait;
 user = smxm;
 restart_dependencies = { smtps, qmgr };
 path = "/usr/local/libexec/smar";
 arguments = "smar -f /etc/smx/smx.conf";
}

aliases設定

MSAとして利用するとのaliasesは関係なし

mailertable(mt)設定

# cd /etc/smx
# vi mt
.                      esmtp:[127.0.0.1]
(すべてMTAに転送するように設定)
# make

access設定

# cd /etc/smx
# vi access
cltaddr:127.0.0.1       relay
cltaddr:192.168.1       relay
(ローカルからのみ許可)
# make

tls設定

前準備

# vi /etc/openssl/openssl.cnf
dir             = /var/db/CA
# mkdir /var/db/CA
# cd /var/db/CA
# mkdir certs crl newcerts private
# chmod 700 private
# echo 01 > serial
# touch index.txt

CA証明書の生成

自己署名済みの証明書と秘密鍵を生成します

# openssl req -new -x509 -newkey rsa:2048 -out cacert.pem -keyout private/cakey.pem

smx用証明書の生成

# openssl req -new -keyout private/smxkey.pem -keyform PEM -out smxcsr.pem -outform PEM

smx用証明書への署名

# openssl ca -out certs/smxcrt.pem -infiles smxcsr.pem

パスフレーズの削除

# openssl rsa -in private/smxkey.pem -out smxkey.pem

SASLのDBにアクセス権設定

ユーザsmxsがSASLのDBにアクセスできるように設定します。 今回は、他にsasldbをアクセスするアプリケーションの権限はrootであるため、以下の方法を用います。

# chown smxs /usr/pkg/etc/sasldb

起動

sendmailXを起動

# cd /var/spool/smx
# ./mcp.sh

注意事項

その1

※ client_name=Hostname_Not_Determined のメッセージがでる
   →smtpsでaccess DBを見るように設定すればresolveが行われる

その2

smx.conf中、READMEのサンプルでは、

trusted_mechs = { CRAM-MD5, DIGEST-MD5 }

となっているが、実際には

trusted_mechanisms="CRAM-MD5 DIGEST-MD5"

のようにしないとパースエラーとなる。

デバッグ用メモ

/var/spool/smx/mcp.sh 中の /usr/local/sbin/mcp のオプションに -d を追加すると詳細のログがでるようになる。 調査するファイルリスト

  • /var/spool/smx/mcp.out
  • /var/log/maillog
  • /var/log/messages
  • /var/spool/smx/MSA.log
  • /var/spool/smx/qmgr.log
  • /var/spool/smx/smtpc.log mcp.sh経由じゃなく、直接/usr/local/sbin/mcpを起動するとsmtpsが立ち上がらないことがあります(原因不明)。

起動用スクリプト作成

# cp /var/spool/smx/mcp.sh /etc/rc.d/smx

sendmail X 0.1.Beta <2006/03/02更新>

sendmailX をMSA(Mail Submission Agent)としてだけ利用してみます。 現状ではSTARTTLS+AUTH(CRAM-MD5)で使用できています。

環境

OS: NetBSD 3.0rc5
smX: 0.1.Beta1.0

インストール

SASLで使用しているBerkeleyDBとの整合性のため、付属のではなくてSASLで使 用しているものと同じもの(Berkeley-DB 4.4系)を使用します。

% tar zxvf smX-0.1.Beta1.0.tar.gz
% cd smX-0.1.Beta1.0

NetBSDでdbがリンクできるように以下のパッチをあてます。

--- configure   2006-02-01 09:34:30.000000000 +0900
+++ configure   2006-03-02 22:45:02.000000000 +0900
@@ -3558,7 +3558,7 @@
                bdb_wo_fdatasync="unknown"
        if test -d "$with_bdb_lib"; then
            BDB_LIBADD="$with_bdb_lib"
-           for dbname in db-4.3 db4.3 db43 db4-4.3 db-4.2 db4.2 db42 db4-4.2 db-4.1 db4.1 db41 db
+           for dbname in db4-4.4 db-4.3 db4.3 db43 db4-4.3 db-4.2 db4.2 db42 db4-4.2 db-4.1 db4.1 db41 db
            do
                BDB2_SAVE_LIBS=$LIBS
                LIBS="$LIBS $BDB_LIBADD/lib${dbname}.a"
@@ -3672,7 +3672,7 @@
                LIBS=$BDB2_SAVE_LIBS
            done
        else
-           for dbname in db-4.3 db4.3 db43 db4-4.3 db-4.2 db4.2 db42 db4-4.2 db-4.1 db4.1 db41 db
+           for dbname in db4-4.4 db-4.3 db4.3 db43 db4-4.3 db-4.2 db4.2 db42 db4-4.2 db-4.1 db4.1 db41 db
            do
                BDB2_SAVE_LDFLAGS=$LDFLAGS
                LDFLAGS="$LDFLAGS -l${dbname}"

コンパイルします。

% mkdir obj.netbsd
% cd obj.netbsd
% ../configure --prefix=/usr/local \
  --enable-TLS --enable-SASL --with-sasl-libdir=/usr/pkg/lib --with-sasl-incdir=/usr/pkg/include \
  --disable-included-bdb --with-bdb-incdir=/usr/pkg/include/db4 --with-bdb-libdir=/usr/pkg/lib
% make

# groupadd  -g 260 smxs
# groupadd  -g 261 smxq
# groupadd  -g 262 smxc
# groupadd  -g 263 smxm
# groupadd  -g 264 smx
# useradd  -G smxc,smxm -g smxs -u 260 smxs
# useradd  -G smxm -g smxq -u 261 smxq
# useradd  -g smxc -u 262 smxc
# useradd  -g smxm -u 263 smxm
# useradd  -g smx -u 264 smx

# make install

設定

smx.conf設定

# cd /etc/smx
# vi smx.conf

smtps MSA {
 auth {
     trusted_mechanisms="CRAM-MD5 DIGEST-MD5";
     flags = { noplaintext };
 }
 tls { cert_file = "/var/db/CA/certs/smxcrt.pem";
	key_file = "/var/db/CA/smxkey.pem";
	CAcert_file = "/var/db/CA/cacert.pem";
	CAcert_directory = "/var/db/CA/certs";
 }
 log_level = 11;
 log { facility=mail; ident="MSA"; }
 CDB_gid = 262;
 listen_socket { type = inet; port = 587; }
 start_action = pass;
 pass_fd_socket = smtps/msafd;
 user = smxs;
 path = "/usr/local/libexec/smtps";
 arguments = "smtps -I 1 -N MSA -f /etc/smx/smx.conf";
}
smtpc {
 log_level = 12;
 tls { cert_file = "/var/db/CA/certs/smxcrt.pem";
	key_file = "/var/db/CA/smxkey.pem";
	CAcert_file = "/var/db/CA/cacert.pem";
	CAcert_directory = "/var/db/CA/certs";
 }
 log { facility=mail; ident="smtpc"; }
 wait_for_server = 4;
 start_action = wait;
 user = smxc;
 path = "/usr/local/libexec/smtpc";
 arguments = "smtpc -f /etc/smx/smx.conf";
}

qmgr {
 log_level = 12;
 log { facility=mail; ident="qmgr"; }
 wait_for_server = 4;
 wait_for_client = 3;
 start_action = wait;
 user = smxq;
 restart_dependencies = { smtps, smtpc, smar };
 path = "/usr/local/libexec/qmgr";
 arguments = "qmgr -f /etc/smx/smx.conf";
}
smar {
 log_level = 12;
 log { facility=mail; ident="smar"; }
 nameserver = { 192.168.1.1, 192.168.1.2 };
 start_action = wait;
 user = smxm;
 restart_dependencies = { smtps, qmgr };
 path = "/usr/local/libexec/smar";
 arguments = "smar -f /etc/smx/smx.conf";
}

aliases設定

MSAとして利用するとのaliasesは関係なし

mailertable(mt)設定

# cd /etc/smx
# vi mt
.                      esmtp:[127.0.0.1]
(すべてMTAに転送するように設定)
# make

access設定

# cd /etc/smx
# vi access
cltaddr:127.0.0.1       relay
cltaddr:192.168.1       relay
(ローカルからのみ許可)
# make

tls設定

前準備

# vi /etc/openssl/openssl.cnf
dir             = /var/db/CA
# mkdir /var/db/CA
# cd /var/db/CA
# mkdir certs crl newcerts private
# chmod 700 private
# echo 01 > serial
# touch index.txt

CA証明書の生成

自己署名済みの証明書と秘密鍵を生成します

# openssl req -new -x509 -newkey rsa:2048 -out cacert.pem -keyout private/cakey.pem

smx用証明書の生成

# openssl req -new -keyout private/smxkey.pem -keyform PEM -out smxcsr.pem -outform PEM

smx用証明書への署名

# openssl ca -out certs/smxcrt.pem -infiles smxcsr.pem

パスフレーズの削除

# openssl rsa -in private/smxkey.pem -out smxkey.pem

SASLのDBにアクセス権設定

ユーザsmxsがSASLのDBにアクセスできるように設定します。 今回は、他にsasldbをアクセスするアプリケーションの権限はrootであるため、以下の方法を用います。

# chown smxs /usr/pkg/etc/sasldb

起動

sendmailXを起動

# cd /var/spool/smx
# ./mcp.sh

注意事項

その1

※ client_name=Hostname_Not_Determined のメッセージがでる
   →smtpsでaccess DBを見るように設定すればresolveが行われる

その2

smx.conf中、READMEのサンプルでは、

trusted_mechs = { CRAM-MD5, DIGEST-MD5 }

となっているが、実際には

trusted_mechanisms="CRAM-MD5 DIGEST-MD5"

のようにしないとパースエラーとなる。

デバッグ用メモ

/var/spool/smx/mcp.sh 中の /usr/local/sbin/mcp のオプションに -d を追加すると詳細のログがでるようになる。 調査するファイルリスト

  • /var/spool/smx/mcp.out
  • /var/log/maillog
  • /var/log/messages
  • /var/spool/smx/MSA.log
  • /var/spool/smx/qmgr.log
  • /var/spool/smx/smtpc.log mcp.sh経由じゃなく、直接/usr/local/sbin/mcpを起動するとsmtpsが立ち上がらないことがあります(原因不明)。

起動用スクリプト作成

未定

sendmail X 0.1.Alpha <2005/12/06更新>

sendmailX をMSAとしてだけ利用してみます。

環境

OS: NetBSD 3.0rc5
smX: 0.1.Alpha0.0

インストール

% tar zxvf smX-0.1.Alpha0.0.tar.gz
% cd smX-0.1.Alpha0.0
% mkdir obj.netbsd
% cd obj.netbsd
% ../configure --prefix=/usr/local --enable-TLS --enable-SASL --with-sasl-libdir=/usr/pkg/lib --with-sasl-incdir=/usr/pkg/include
% make

# groupadd  -g 260 smxs
# groupadd  -g 261 smxq
# groupadd  -g 262 smxc
# groupadd  -g 263 smxm
# groupadd  -g 264 smx
# useradd  -G smxc,smxm -g smxs -u 260 smxs
# useradd  -G smxm -g smxq -u 261 smxq
# useradd  -g smxc -u 262 smxc
# useradd  -g smxm -u 263 smxm
# useradd  -g smx -u 264 smx

# make install

設定

smx.conf設定

# cd /etc/smx
# vi smx.conf

smtps MSA {
 log_level = 11;
 log { facility=mail; ident="MSA"; }
 CDB_gid = 262;
 listen_socket { type = inet; port = 587; }
 start_action = pass;
 pass_fd_socket = smtps/msafd;
 user = smxs;
 path = "/usr/local/libexec/smtps";
 arguments = "smtps -I 1 -N MSA -f /etc/smx/smx.conf";
}
smtpc {
 log_level = 12;
 log { facility=mail; ident="smtpc"; }
 wait_for_server = 4;
 start_action = wait;
 user = smxc;
 path = "/usr/local/libexec/smtpc";
 arguments = "smtpc -f /etc/smx/smx.conf";
}

qmgr {
 log_level = 12;
 log { facility=mail; ident="qmgr"; }
 wait_for_server = 4;
 wait_for_client = 3;
 start_action = wait;
 user = smxq;
 restart_dependencies = { smtps, smtpc, smar };
 path = "/usr/local/libexec/qmgr";
 arguments = "qmgr -f /etc/smx/smx.conf";
}
smar {
 log_level = 12;
 log { facility=mail; ident="smar"; }
 nameserver = { 192.168.1.1, 192.168.1.2 };
 start_action = wait;
 user = smxm;
 restart_dependencies = { smtps, qmgr };
 path = "/usr/local/libexec/smar";
 arguments = "smar -f /etc/smx/smx.conf";
}

aliases設定

MSAとして利用するとのaliasesは関係なし

mailertable(mt)設定

# cd /etc/smx
# vi mt
.                      esmtp:[127.0.0.1]
(すべてMTAに転送するように設定)
# make

access設定

# cd /etc/smx
# vi access
cltaddr:127.0.0.1       relay
cltaddr:192.168.1       relay
(ローカルからのみ許可)
# make

起動

sendmailXを起動

# cd /var/spool/smx
# ./mcp.sh

注意事項

※ client_name=Hostname_Not_Determined のメッセージがでる
   →smtpsでaccess DBを見るように設定すればresolveが行われる

起動用スクリプト作成

未定

sendmail X 0.0系 <2005/08/30更新>

smX-0.0.Beta0.0をインストールする

環境

OS: Debian 3.1
Kernel: linux-2.6.12.3
smX: 0.0.Beta0.0

準備

Berkeley DBが4.2 or 4.1以上が必要(4.3.27はダメ) (Alpha9.0からBerkeley DBがsendmailXパッケージに含まれるようになったため、インストールの必要はない)
# apt-get install libdb4.2 libdb4.2++ libdb4.2++-dev libdb4.2-dev libdb4.2-java db4.2-util db4.2-doc

インストール

% tar zxvf smX-0.0.Beta0.0.tar.gz
% cd smX-0.0.Beta0.0

Alpha11.0ではgreyprintのリンクに失敗するので、以下のパッチをあてる。Alpha14.0以降ではパッチあてする必要なし。

--- libmta/Makefile.in.orig     2005-08-09 08:47:43.000000000 +0900
+++ libmta/Makefile.in  2005-08-16 11:17:54.000000000 +0900
@@ -803,7 +803,7 @@
 greyprint_OBJECTS = $(am_greyprint_OBJECTS)
 greyprint_DEPENDENCIES = ../libmta/libsmctl.a ../libmta/libmta.a \
        ../librepl/librepl.a
-greyprint_LDFLAGS =
+greyprint_LDFLAGS = $(PTHREAD_CFLAGS)
 am_t_dirname_OBJECTS = t-dirname.$(OBJEXT)
 t_dirname_OBJECTS = $(am_t_dirname_OBJECTS)
 t_dirname_DEPENDENCIES = ../libmta/libmta.a ../libmta/libsmmisc.a \
% mkdir obj.Linux
% cd obj.Linux
% ../configure
% make
% SM_NO_DNS_TEST=1 make -i check >& make.log &

# adduser --system --group smxs
# adduser --system --group smxq
# adduser --system --group smxc
# adduser --system --group smxm
# adduser --system --group smx
# usermod -G smxc,smxm smxs
# usermod -G smxm smxq

# make install

設定

smx.conf設定

0.0.Alpha11.0→smX-0.0.Alpha14.0でlisten_socketのメンバnameがpathに変更になったので注意が必要です。 0.0.Alpha8.0→smX-0.0.Alpha9.0で設定ファイル中の識別子等の名称が変更になったりしているので注意が必要です。詳しくはChangeLog?を参照してください。

# cd /etc/smx
# vi smx.conf
lmtp {
 log_level = 14;
 log { facility=mail; ident="lmtp"; }
       listen_socket { 
               type = unix;
               path = lmtpsock;
               umask = 007;
               user = root;
               group = smxc; }
       start_action = nostartaccept;
       min_processes = 1;
       max_processes = 8;
       user = root;
       path = /usr/local/bin/procmail;
       arguments = "procmail -z+";
}

smtps {
 log_level = 14;
 log { facility=mail; ident="smtps"; }
 flags = { access };
 CDB_gid = 117;
 IO_timeout = 5m3s;
 wait_for_server = 4;
 listen_socket { type = inet; port = 25; }
 max_hops = 51;
 start_action = pass;
 pass_fd_socket = smtps/smtpsfd;
 user = smxs;
 path = "/usr/local/libexec/smtps";
 arguments = "smtps -f /etc/smx/smx.conf";
}
smtpc {
 log_level = 14;
 log { facility=mail; ident="smtpc"; }
 IO_timeout = 6m;
 wait_for_server = 4;
 start_action = wait;
 user = smxc;
 path = "/usr/local/libexec/smtpc";
 arguments = "smtpc -f /etc/smx/smx.conf";
}

qmgr {
 log_level = 14;
 log { facility=mail; ident="qmgr"; }
 AQ_max_entries = 8192;
 smtpc { initial_connections = 19; max_connections = 101; }
 smtps { max_connections = 5; max_connection_rate=160; }
 wait_for_server = 4;
 wait_for_client = 4;
 start_action = wait;
 user = smxq;
 restart_dependencies = { smtps, smtpc, smar };
 path = "/usr/local/libexec/qmgr";
 arguments = "qmgr -f /etc/smx/smx.conf";
}
smar {
 log_level = 12;
 log { facility=mail; ident="smar"; }
 nameserver = { 192.168.1.1, 192.168.1.2 };
 DNS_timeout = 6;
 start_action = wait;
 user = smxm;
 restart_dependencies = { smtps, qmgr };
 path = "/usr/local/libexec/smar";
 arguments = "smar -f /etc/smx/smx.conf";
}
0.0.Alpha8.0までの設定

  (以下を追加)
lmtp {
 log_level = 11;
 log { facility=mail; ident="lmtp"; }
       socket { name = lmtpsock;
               umask = 007;
               user = root;
               group = smxc; }
       mcp_type = nostartaccept;
       min_processes = 1;
       max_processes = 8;
       user = root;
       path = /usr/local/bin/procmail;
       arguments = "procmail -z+";
}

smtps {
  flags = { access };
  .
  .

smar {
  nameserver = { xx.yy.zz.aa, xx.yy.zz.bb };
  .
  .

aliases設定

# cd /etc/smx
# vi aliases
  (userを実在のユーザに変更)
# make aliases.db

mailertable(mt)設定

# cd /etc/smx
# vi mt
(自ドメインを追加)
localhost              lmtp:
hogehoge.example.com   lmtp:

access設定

# cd /etc/smx
# vi access
(resolveできない場合は一時エラーとする)
cltresolve:tempptr       error:451 4.7.1 reverse lookup failed

# make access.db

procmailにLMTP用のpatchをあてる

procmailをsmX用のpatchをあててつくり直す

% tar zxvf procmail-3.22.tar.gz
% cd procmail-3.22
% patch -s -p0 < ../smX-0.0.Alpha0.0/contrib/procmail.lmtp.p0
% vi config.h
  (#define LMTPを有効に)
% make BASENAME=/usr/local
% su
# make BASENAME=/usr/local install-suid

起動

sendmailXを起動

# cd /var/spool/smx
# ./mcp.sh

注意事項

※ client_name=Hostname_Not_Determined のメッセージがでる
   →smtpsでaccess DBを見るように設定すればresolveが行われる
※ lmtpでlogを指定しないとprocmailがエラーになる(?)

起動用スクリプト作成

起動スクリプト作成(/etc/init.d/sendmailX)

#!/bin/sh -e

PATH=/sbin:/bin:/usr/bin:/usr/local/sbin:/usr/local/bin

case "$1" in
       start)
               echo -n "Starting sendmailX server: sendmailX"
               start-stop-daemon --start --quiet --pidfile /var/spool/smx/mcp.pid -b --exec /var/spool/smx/mcp.sh
               echo "."
               ;;
       stop)
               echo -n "Stopping NTP server: sendmailX"
               start-stop-daemon --stop --quiet --pidfile /var/spool/smx/mcp.pid
               echo "."
               rm -f /var/spool/smx/mcp.pid
               ;;
       restart|force-reload)
               echo -n "Restarting NTP server: sendmailX... "
               start-stop-daemon --stop --quiet --pidfile /var/spool/smx/mcp.pid
               sleep 2
               start-stop-daemon --start --quiet --pidfile /var/spool/smx/mcp.pid -b --exec /var/spool/smx/mcp.sh
               echo "done."
               ;;
       reload)
               echo "Not supported, sorry. Use 'restart' or 'force-reload'." >&2
               exit 1
               ;;
       *)
               echo "Usage: /etc/init.d/sendmailX {start|stop|restart|force-reload}"
               exit 1
               ;;
esac

exit 0
# update-rc.d sendmailX defaults