勉強したことのメモ

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, サーバー

  関連記事

Nginxでリダイレクト(http->https)及びリライト設定

Nginxでhttpアクセス時にhttpsリダイレクトさせたい。それとは別に「h ...

IPアドレスでサイトを表示させないようにする方法

http://aaa.comというドメインを111.222.333.444という ...

海外IPの制限

海外IPの制限を行ったので手順のメモ。 まず「サーバー立てたらすぐ攻撃が来る」と ...

yumで既にインストールされているか確認する

新しくインストールする前に既に入っているか どうか確認したかった。 yum li ...

iPhoneでSSH接続するアプリ

iPhoneでSSHクライアントアプリを使用する必要があった。以下に経緯等のメモ ...

FTP接続する際のユーザーとグループ設定

共用のレンタルサーバーを使用する時には気にならないが、VPSや専用サーバーを使う ...

cronの設定方法

cronを設定してみたので方法をメモ。 まずcronで動かすPHPを作成。 ■c ...

特定ディレクトリ以下のBasic認証を無効化する方法

Basic認証を設定しているサイトがあり、そちらを解除したかった。通常の場合だと ...

PHPでコマンドを実行して画像を加工

PHPで画像をリサイズしたりサムネイルを作ろうとすると、 ソースが長くなって面倒 ...

さくらvpsでパッケージのアンインストール

yumでインストールしたパッケージをアンインストール したかったけど、やり方が分 ...