勉強したことのメモ

Webエンジニア / プログラマが勉強したことのメモ。

CentOS 6.5にメールサーバ(postfix&dovecot)を導入する方法

   2024/01/12  サーバー

CentOS 6.5にメールサーバ(postfix&dovecot)を導入したかった。具体的にはThunderbirdでメールの送受信が出来る状態まで設定したい。尚、細かい設定はよく分からないので最低限の設定で対応したかった。以下に作業環境と導入方法をメモ。

 

作業環境

  • サーバ環境:CentOS 6.5 64bit
  • ドメイン:hoge.com
  • メールユーザ:webmaster

 

作業中はログ確認しながらの方が良い

メールログは/var/log/maillogにあるので、送受信ができないとかトラブルがあれば確認する。2つぐらいターミナル立てておいて片方では、

tail -f /var/log/maillog

とかでリアルタイム確認にしておけば分かりやすかった。

 

導入方法

sendmailが動いている場合は念のため止めておく

/etc/rc.d/init.d/sendmail stop

postfixをインストール

yum -y install postfix

postfixの設定ファイルを開く

vi /etc/postfix/main.cf

以下を追記していく

myhostname = mail.hoge.com
mydomain = hoge.com
myorigin = $mydomain
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
mynetworks = 192.168.1.0/24, 127.0.0.0/8
home_mailbox = Maildir/
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination

ファイアウォールを設定

iptables -I RH-Firewall-1-INPUT -p tcp -m tcp --dport smtp -j ACCEPT
iptables -I RH-Firewall-1-INPUT -p tcp -m tcp --dport pop3 -j ACCEPT
iptables -I RH-Firewall-1-INPUT -p tcp -m tcp --dport imap -j ACCEPT
/etc/rc.d/init.d/iptables save

dovecotをインストール

yum -y install dovecot

dovecotの設定ファイルを開く

vi /etc/dovecot/dovecot.conf

以下を追記していく

protocols = pop3 imap
disable_plaintext_auth = no

もう一つのdovecot設定ファイルを開く(違いは分からず)

vi /etc/dovecot/conf.d/10-auth.conf

以下を追記していく

disable_plaintext_auth = no

新規ユーザ追加時にメールボックスが作成されるよう設定

mkdir -p /etc/skel/Maildir/{new,cur,tmp}
chmod -R 700 /etc/skel/Maildir/

メール用のユーザを作成

useradd webmastert
passwd webmaster

既存ユーザにメールボックスを作成する場合はそのユーザでログインして以下コマンドを入力。以下ではhogehogeというユーザに変更してメールボックスを作成

su - hogehoge
mkdir /etc/skel/Maildir
mkdir /etc/skel/Maildir/tmp
mkdir /etc/skel/Maildir/cur
mkdir /etc/skel/Maildir/new

SMTP-AUTHクライアントのインストールと起動設定

yum -y install cyrus*
service saslauthd start
chkconfig saslauthd on

postfixとdovecotを起動

service postfix start
service dovecot start

必要なら自動起動も設定する

chkconfig postfix on
chkconfig dovecot on

 

その他

POP3とは

メールを受信する為のプロトコルの一つ。サーバにメールを残さない為、サーバの負荷は軽くなるけど複数の場所でメールを見ることができない。

IMAPとは

メールを保存しているサーバから受信する為のプロトコル。サーバにメールを残すので複数の場所でメールを見ることが出来るが、定期的にメールを削除していかないと負荷になる。

SMTPとは

メールを伝送する為のプロトコルの一つ。POP3やIMAPは受信だけど、SMTPは送信。

メーラーでの送受信は必要なくPHPでmail関数を使いたい場合

postfixをインストールして起動するだけで、以下ソースで送信できるみたい。特に設定は必要なし。

mb_language('ja');
mb_internal_encoding('UTF-8');
$from = 'hoge@hoge.com';
if( mb_send_mail($from, 'subject', 'body', "From: {$from}\r\n", "-f{$from}") ){
    //成功時処理
}else{
    //失敗時処理
}

Thunderbird側での設定

「アカウント」→「新しいアカウント作成」の中から「メール」を選んで進んでいけばOK。IMAPで確認したところ問題なかった。ただ、セキュリティ設定がいけないらしく警告画面みたいなのが出るので、例外設定みたいな感じで進む。この辺の設定とかもちゃんとできるようになりたいところ。

 - サーバー

  関連記事

WebARENA Indigo(VSP)のスナップショットについて

先日WebARENA Indigo内でOS及びサーバ移行を行い、しばらく様子見し ...

CentOS7.9にPostfixをインストールしてメール送信できるようセットアップする方法

本ブログのサーバをKAGOYAのVPSからWebARENA Indigoへ移行し ...

WordPressサイトのロードアベレージが高い際の対応方法

あるWordPressサイトのロードアベレージが先月ぐらいまでは通常0.5前後で ...

サーバー監視はNew Relicが楽に導入できて便利

サーバー監視はNew Relicが楽に導入できて便利だった。メモリ使用率やCPU ...

WordPressでメモリを節約しつつ高速化する設定方法

メモリ1GのVPSを借りてWordpress以外にも、ちょいちょいものを置いてい ...