アプリケーション開発ポータルサイト
ServerNote.NET
Amazon.co.jpでPC関連商品タイムセール開催中!
カテゴリー【PostfixDebian
DebianにメールサーバーPostfixをセットアップ
POSTED BY
2023-11-24

FreeBSDには標準でsendmailが居るのでそれは後日

Debianには最初何もないのでPostfixをインストールする。

apt install postfix

最初の質問には「No Configration」を選んで、インストール「だけ」行う。

設定ファイル編集

cd /etc/postfix
cp -p main.cf.proto main.cf
cp -p master.cf.proto master.cf

main.cf

queue_directory = /var/spool/postfix
mail_owner = postfix
default_privs = hogeuser
myhostname = www.example1155.jp
mydomain = example1155.jp
myorigin = $mydomain
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
mynetworks = 127.0.0.1/32, 192.168.1.0/24
relay_domains = $mydestination
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
home_mailbox = Maildir/
#sendmail_path =
#newaliases_path =
#mailq_path =
#setgid_group =
#html_directory =
#manpage_directory =
#sample_directory =
#readme_directory =
# SSL
#
smtpd_use_tls = yes
smtpd_tls_security_level = may
smtpd_tls_loglevel = 1
smtpd_tls_cert_file = /etc/letsencrypt/live/www.example1155.jp/fullchain.pem
smtpd_tls_key_file = /etc/letsencrypt/live/www.example1155.jp/privkey.pem
smtpd_tls_session_cache_database = btree:/var/lib/postfix/smtpd_scache
smtp_use_tls = yes
smtp_tls_security_level = may
smtp_tls_loglevel = 1
smtp_tls_session_cache_database = btree:/var/lib/postfix/smtp_scache
tls_random_source = dev:/dev/urandom

・default_privsには基本自分を指定する。コマンドメールを受信した際、ここで指定したユーザーとして実行される。

・smtpd_use_tls以下で、SSLを有効にしている。サーバー証明書はこちらのLet's Encryptで作成したものを指定(Apache webサーバーと共用)

・故に、myhostnameはこのサーバ証明書に埋め込まれてるものと同じ名前 = www.example1155.jp でなければならない。Apacheと共用できて楽なのでこうしているが、通例に従いメールサーバー名を分ける場合=例えばmail.example1155.jpなどとする場合=Let's Encryptをもう一度用いてmail.example1155.jpでSSLサーバー証明書を新規作成する。サーバー名と証明書内のサーバー名が異なっているとブラウザでエラー扱いとなる。

master.cf

smtps     inet  n       -       y       -       -       smtpd
   -o smtpd_tls_wrappermode=yes

Postfix起動

/etc/init.d/postfix stop
/etc/init.d/postfix start

aliasesの設定

/etc/aliasesに追記

root: hogeuser
hogeuser: hogeuser1111222333@gmail.com

・rootに来るメールの転送先=自分(hogeuser)
・そしてその自分に来るメールの転送先=外部のWebメール(gmail)

有効化

newaliases

ルーターの25番と465番を開けてメール送受信サーバー開放。
外からメールを送ってみたりする。SSLが働いているかのテストはこちらなど

/var/log/mail.logを見るなどして確認。

当方環境では自分に来たメールは全部Gmailに飛ばしてるが、
そのままローカルユーザで受け取る場合dovecot等POPサーバーを導入する。
しばらくPOPの導入していないのでそれはまた後日

※本記事は当サイト管理人の個人的な備忘録です。本記事の参照又は付随ソースコード利用後にいかなる損害が発生しても当サイト及び管理人は一切責任を負いません。
※本記事内容の無断転載を禁じます。
【WEBMASTER/管理人】
自営業プログラマーです。お仕事ください!
ご連絡は以下アドレスまでお願いします★

☆ServerNote.NETショッピング↓
ShoppingNote / Amazon.co.jp
☆お仲間ブログ↓
一人社長の不動産業務日誌
【キーワード検索】