VPSでメールサーバーを構築してメールの送受信をしてみようと思います。
後述の前提条件にもあります通り、PostfixとDovecotを使いますが今回はPostfixについて記事にしたいと思います。
既存のメールサーバーを使う方法についてはこちらをご覧ください。
LightsailからSimple Email Service(SES)経由でメールを送ってみた
Lightsailインスタンスはpostfixを動かしてもメールを送ることができないようです。「数通だったら送れた」という情報も見受けられますが、うちで試したところ1通も送る...
VPSで外部のメールサーバーを使う方法
レンタルサーバーで動かしていたWordPressをVPSに移行しました。 メールサーバーもVPSに移す予定なのですが、今はまだレンタルサーバーを契約したときについてきたメー...
目次
前提条件
- OSはCentOS Stream 8であること
- PostfixとDovecotをインストール済みであること
- DNSのMXレコードが設定済みであること
- メールサーバーに割り当てるドメインのSSL証明書が取得済みであること
構築手順
- main.cfの修正
/etc/postfixにあるmain.cfの下記項目を追加・修正します。inet_interfaces = all message_size_limit = 10485760 mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain mydomain = {ドメイン名} myhostname = {メールサーバーのホスト名} mynetworks_style = host myorigin = $mydomain smtpd_banner = $myhostname ESMTP unknown smtpd_client_restrictions = permit_mynetworks,permit smtpd_recipient_restrictions = permit_mynetworks,permit_auth_destination,permit_sasl_authenticated,reject smtpd_sasl_auth_enable = yes smtpd_sasl_path = private/auth smtpd_sasl_security_options = noanonymous smtpd_sasl_type = dovecot smtpd_sender_restrictions = reject_unknown_sender_domain smtpd_tls_cert_file = {SSL証明書をフルパスで記載} smtpd_tls_key_file = {SSL証明書(秘密鍵)をフルパスで記載} smtpd_tls_loglevel = 1 smtpd_tls_mandatory_exclude_ciphers = aNULL, MD5, RC4 smtpd_tls_mandatory_protocols = !SSLv3, !SSLv2 smtpd_tls_received_header = yes smtpd_tls_security_level = may smtpd_tls_session_cache_database = btree:/var/lib/postfix/smtpd_scache smtpd_tls_session_cache_timeout = 3600s smtpd_use_tls = yes
- master.cfの修正
/etc/postfixにあるmaster.cfの下記項目を追加・修正します。#submission inet n - n - - smtpd → submission inet n - n - - smtpd # -o smtpd_tls_security_level=encrypt → -o smtpd_tls_security_level=encrypt # -o smtpd_sasl_auth_enable=yes → -o smtpd_sasl_auth_enable=yes # -o smtpd_client_restrictions=$mua_client_restrictions → -o smtpd_client_restrictions=permit_sasl_authenticated,reject # -o milter_macro_daemon_name=ORIGINATING → -o milter_macro_daemon_name=ORIGINATING (冒頭の#を削除、smtpd_client_restrictionsについては内容も修正) #smtps inet n - n - - smtpd → smtps inet n - n - - smtpd # -o smtpd_tls_wrappermode=yes → -o smtpd_tls_wrappermode=yes # -o smtpd_sasl_auth_enable=yes → -o smtpd_sasl_auth_enable=yes (冒頭の#を削除)
- ファイアウォールの設定
ファイアウォールを有効にしている場合は下記のポートを開けてください。
・25/tcp
・465/tcp
・587/tcp - 自動起動設定と起動
下記コマンドを実行して自動起動するように設定をして、起動します。sudo systemctl enable postfix sudo systemctl start postfix
メールアドレスの追加
メールアドレスの追加はadduserコマンドでユーザーを追加することで行います。
#メールアドレスとしてのみ使う場合 sudo adduser -s /sbin/nologin {ユーザー名} #通常のユーザーとしても使う場合 sudo adduser -s /bin/bash {ユーザー名} #メールボックスを作成する sudo mkdir -p /home/{ユーザー名}/Maildir/{cur,new,tmp}
まとめ
以上でPostfixの設定は完了です。
送信時の認証にDovecotを使用しているのでDovecotが正常に稼働していない場合はメールの送信ができません。
この記事がPostfixを使おうとしている方の参考になれば幸いです。
コメント