勉強したことのメモ

webプログラマが勉強したことのメモ。

VPSにメールサーバを導入する方法

   

VPSにメールサーバを導入したかった。具体的には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で確認したところ問題なかった。ただ、セキュリティ設定がいけないらしく警告画面みたいなのが出るので、例外設定みたいな感じで進む。この辺の設定とかもちゃんとできるようになりたいところ。

 - VPS, サーバー

  関連記事

linuxのシェルスクリプト

とあるサイトで自動更新で随時データベースにデータが挿入されるという機能があった。 ...

WordPressサイトのロードアベレージが高い

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

サーバーリソース監視にsar(sysstat)が便利だった

過去にサーバーリソース監視のmuninとかcactiを何度か入れようとして挫折し ...

htmlファイル内でPHPを動かす(AddHandler)

サイトを引き継ぐことがあり、ソースを確認していると拡張子はhtmlなのにPHPの ...

Class ‘DOMDocument’ not foundエラーの対処

PHPでphpQueryというライブラリを利用しようとすると「Fatal err ...

URLを入力するだけでサーバーの負荷テストが出来る「loadimpact」が便利

URLを入力するだけでサーバーの負荷テストが出来る「loadimpact」が便利 ...

sshでMySQLの操作

今までMySQLを操作するときはphpmyadminから 行っていたけど、php ...

プロキシサーバの接続ログを確認する方法

だいぶ前にVPSにプロキシサーバ(squid)を導入した。接続IPは指定している ...

リモートマシンからSSH接続

AのサーバーにSSHで接続して、そのまま BのサーバーにSSHでログインみたいな ...

ServerQueenのVPSプランが非常に安いみたい

今のところ、スペックとかはあまりこだわらずに、値段だけでVPSを選ぶ際はDTIの ...