メールサーバを構築するメモです。
※ 勉強のために EC2 にメールサーバを構築した備忘録です。
構築後は EC2 は停止しているので外部公開を目的にはしていません。
【初心者向け】EC2を利用したメールサーバーの構築( Postfix + Dovecot ) を参考にして作業しました。
$ sudo apt install -y postfix
$ sudo systemctl status postfix.service
● postfix.service - Postfix Mail Transport Agent
Loaded: loaded (/lib/systemd/system/postfix.service; enabled; vendor preset: enabled)
Active: active (exited) since Mon 2023-09-11 15:33:35 JST; 2min 35s ago
Docs: man:postfix(1)
Process: 3398 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
Main PID: 3398 (code=exited, status=0/SUCCESS)
CPU: 1ms
Sep 11 15:33:35 xxxxxx systemd[1]: Starting Postfix Mail Transport Agent...
Sep 11 15:33:35 xxxxxx systemd[1]: Finished Postfix Mail Transport Agent.
/etc/postfix/main.cf を以下のように編集しました。
末尾の home_mailbox = Maildir/ は新規に追加しました。
# See /usr/share/postfix/main.cf.dist for a commented, more complete version
# Debian specific: Specifying a file name will cause the first
# line of that file to be used as the name. The Debian default
# is /etc/mailname.
#myorigin = /etc/mailname
myorigin=example.com
myhostname=example.com
mydomain=example.com
# smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
smtpd_banner = $myhostname ESMTP unknown
biff = no
# appending .domain is the MUA's job.
# append_dot_mydomain = no
append_dot_mydomain = yes
# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h
readme_directory = no
# See http://www.postfix.org/COMPATIBILITY_README.html -- default to 3.6 on
# fresh installs.
compatibility_level = 3.6
# TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_tls_security_level=may
smtp_tls_CApath=/etc/ssl/certs
smtp_tls_security_level=may
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
# myhostname = ip-xxxxx.ap-northeast-1.compute.internal
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
# myorigin = /etc/mailname
mydestination = $myhostname, $domain, localhost.$domain, localhost
relayhost =
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
inet_protocols = all
# Maildir 形式に変更
home_mailbox = Maildir/
デフォルトとの差分を表示します。
$ sudo postconf -n
設定ファイルをチェックします。
$ sudo postfix check
$ sudo systemctl enable --now postfix
ユーザー登録( adduser )でホームディレクトリに Maildir を作成するように雛形を設定します。
$ sudo mkdir -p /etc/skel/Maildir/{new,cur,tmp}
$ chmod -R 700 /etc/skel/Maildir/
ユーザー mail-example を追加します。
$ sudo adduser mail-example
// ユーザー mail-example を追加します
// グループ mail-example を追加します
// ホームディレクトリを作成します
※ Ubuntu(や Debian )は adduser
と useradd
で機能が異なります。
useradd はホームディレクトリを作成しません。
※ Ubuntu(や Debian )は deluser
と userdel
で機能が異なります。
$ userdel ユーザー名 // ユーザーを削除
$ userdel -r ユーザー名 //ユーザーのホームディレクトリも削除
$ deluser --remove-home ユーザー名 // ↑と同じくユーザーのホームディレクトリも削除
mail-example を adm, sudo グループに追加して sudo を有効化します。
$ sudo gpasswd -a mail-example adm
$ sudo gpasswd -a mail-example sudo
ubuntu でログインします。
$ echo "test mail" | sudo mail -s "test subject" -r "ubuntu@example.com" mail-example@example.com
/home/mail-example/Maildir/new にメールが届きます。
sshd のパスワード認証を有効化します。
$ sudo vim /etc/ssh/sshd_config
- PasswordAuthentication no
+ PasswordAuthentication yes
【初心者向け】EC2を利用したメールサーバーの構築( Postfix + Dovecot )を参考に作業しました。
$ sudo apt -y install dovecot-core dovecot-pop3d dovecot-imapd
Ubuntu は dovecot を上記パッケージで提供されています。
その他は /etc/postfix/master.cf で -o smtpd_sasl_auth_enable=yes
のコメントアウトを保持する以外は記事のとおりに作業しました。
telnetの代わりにcurl、ncを参考にして cURL を使用して POP3 の接続を確認しました。
$ curl telnet://example.com:110
User {{ユーザー名}}
Pass {{パスワード}}
RETR 1 // 最初のメールを取得
No comments yet.
改行と段落タグは自動で挿入されます。
メールアドレスは表示されません。