メールサーバを構築中(2) / IMAP before SMTP / 調査中に見つけたページ / netqmail インストールメモ / Courier-IMAP 3.07 をインストール / すごい環境 / C++でBase64 / MFCで文字列が数値かどうかのチェック

投稿日: 2004年08月31日 更新日: 2017年07月22日

メールサーバを構築中(2)

Fedora Core 2 をインストールした。昨日からDebian LinuxとFedora Coreを合わせて5回以上入れなおしてる気がする。

MTAにはqmailにパッチを合わせたnetqmailを使う。

IMAP before SMTP

@IT - POP/IMAPサーバの構築と不正中継対策

IMAPを使うときはSMTP-AUTH使うしかないと思ってたらちゃんとIMAP before SMTPなんてのがあった。手軽そうなのでこれ使おう。

調査中に見つけたページ

netqmail インストールメモ

sendmail のサービスを止める(自動起動も切る)

/etc/init.d/sendmail stop
chkconfig --del sendmail

ダミーのシェルを追加

vi /etc/shells
/bin/false

ユーザの作成

mkdir /var/qmail
groupadd -g 81 nofiles
useradd -u 81 -g nofiles -d /var/qmail/alias -s /bin/false alias
useradd -u 82 -g nofiles -d /var/qmail -s /bin/false qmaild
useradd -u 83 -g nofiles -d /var/qmail -s /bin/false qmaill
useradd -u 84 -g nofiles -d /var/qmail -s /bin/false qmailp
groupadd -g 82 qmail
useradd -u 85 -g qmail -d /var/qmail -s /bin/false qmailq
useradd -u 86 -g qmail -d /var/qmail -s /bin/false qmailr
useradd -u 87 -g qmail -d /var/qmail -s /bin/false qmails

展開してパッチをあててコンパイルしてインストール。

tar xvfz netqmail-1.05.tar.gz
cd netqmail-1.05 
./collate.sh
cd netqmail-1.05
make setup check

設定ファイルをコピー

./config-fast example.com

起動スクリプトをコピー

cp /var/qmail/boot/home /var/qmail/rc

sendmailを置換

rm /usr/sbin/sendmail
ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail

Courier-IMAP 3.07 をインストール

SSLに対応させるためにOpenSSLを入れた。

openssl-0.9.7d.tar.gz
cd openssl-0.9.7d
./config
make
make test
make install

OpenSSLはこれだけ。あとはIMAP側がうまく検出してくれる。

今ふと思ったんだけど、RPMでもOpenSSLが入ってる(rpm -qa|grep opensslで確認したらご丁寧にopenssl-develも入ってた)。どっちが使われたかわからない・・・。

次はCourier-IMAPのインストール。眠かったので適当。

tar xvfj courier-imap-3.0.7.tar.bz2 
cd courier-imap-3.0.7
./configure --enable-unicode
make
make install
make install-configure

makeまでは一般ユーザで行った。(rootだとエラーになる)

PAMで認証させると無事接続できたがSSL接続だと失敗する。鍵の作成をミスってる模様。(/var/log/maillogにエラー出てた)

以下覚えがき

  • –enable-unicodeって必要?
  • OpenSSLの脆弱性が見つかるたびにコンパイルするの?
  • Debian LinuxのBackportsにCourier-IMAPのパッケージがある?あればそれ使ったほうが楽そう。
  • でもパッケージのだとIMAP before SMTPとかできるのかなぁ。あまり弄りたくないし。

寝る。

すごい環境

あちこちでネタになってる「とあるゲーム原画家さんのPC」。

ここまでくるとPCと呼べるのかどうか。

C++でBase64

Base64 Encoder / Decoder - Code Of The Day Forum

MFCで文字列が数値かどうかのチェック

http://mtakahashi.com/old/a6500.htmlのA6479より

// strにチェック前文字列が入っています。
CString res = str.SpanIncluding("0123456789");
if(res == str){
  AfxMessageBox(_T("これは数字なり〜"));
}

SpanIncludingに渡す値を”0123456789ABCDEF”にすれば16進数かどうかもチェックできる。

名前:宮内 はじめ

Code for Nagoya名誉代表

E2D3名古屋支部長

プログラマーです。GISやデータビズが好きです。このサイトは宮内の個人的なメモです。

プロフィール

お問い合わせ