メールサーバを構築中(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
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やデータビズが好きです。このサイトは宮内の個人的なメモです。