このサイトは、只今WEB業界で活躍中のデザイナー、プログラマーの方々の情報を集めたweb統合情報サイトです。

Archives Details

Ubuntu 20.04 LTS サーバ構築 – Postfixインストール

ubuntu

2022.05.01

この記事は最終更新日から1年以上が経過しています。

前回のUbuntu 20.04 LTS サーバ構築 – Let’s EncryptでSSL/TLS化の続きです。

今回は、Postfixをインストール、設定していきます。

メニュー

DNSレコードを追加

以下のDNSレコードを追加

タイプ 名称 TTL
A(通常) mail 3600 (VPSのIPアドレス)
MX @ 3600 ポイント先 mail.(ドメイン) 優先度 10
TXT @ 3600  v=spf1 ip4:(VPSのIPアドレス) ~all

Postfixのインストール

ローカルのaptパッケージキャッシュを更新します。

$ sudo apt update

インストールプロセスの追加オプションを設定する為 環境変数 DEBIAN_PRIORITY=low をインストールコマンドに渡しインストール。

$ sudo DEBIAN_PRIORITY=low apt install postfix

対話型プロンプトが開きますので、プロンプトに応答していきます。

  • メール設定の一般的なタイプ: Internet Site
  • システムメール名: example.com (mail.example.comではない)
  • rootおよびpostmasterメール受信者: プライマリLinuxアカウントユーザー名(例ではwebapp)
  • メールを受信する他の宛先: $myhostname, example.com、localhost.example.com、localhost
  • メールキューの同期更新を強制しますか?: No
  • ローカルネットワーク: 127.0.0/8 [:ffff:127.0.0.0]/104 [:1]/128
  • メールボックスのサイズ制限: 0
  • ローカルアドレス拡張文字: +
  • 使用するインターネットプロトコル: all

再設定を行いたい場合は、以下のコマンド。

$ sudo dpkg-reconfigure postfix

インストールプロセスが終了し、Postfix設定を更新する準備が整いました。

Postfix設定の変更

Postfixのpostconfコマンドを使用して`/etc/postfix/main.cf`ファイルを直接修正せず、クエリにて修正を行います。

myhostnameを変更します。

$ sudo postconf -e 'myhostname=mail.example.com'

home_mailbox変数を Maildir/ に設定します。

$ sudo postconf -e 'home_mailbox= Maildir/'

任意のメールアカウントをLinuxシステムアカウントにマッピングするため、virtual_alias_maps テーブルの場所を設定。

$ sudo postconf -e 'virtual_alias_maps= hash:/etc/postfix/virtual'

ドメイン名(送信元サブドメインを削除するためのオプション設定 例:example.com)

$ sudo postconf -e 'masquerade_domains= example.com'

MTA情報の隠蔽

$ sudo postconf -e 'smtpd_banner = $myhostname ESMTP'

上記のコマンドより、/etc/postfix/main.cf ファイルは以下の様に修正、追加される。

myhostname = mail.example.com
home_mailbox = Maildir/
virtual_alias_maps = hash:/etc/postfix/virtual
masquerade_domains = example.com
smtpd_banner = $myhostname ESMTP

設定内容確認

$ postconf -n

設定内容チェック

$ sudo postfix check

以下の様なエラーが出るが取り敢えず問題ない

postfix/postfix-script: warning: symlink leaves directory: /etc/postfix/./makedefs.out

Postfixプロセスを再起動ですべての変更を適用させる。

$ sudo systemctl restart postfix

ここまででPostfixによる送信用設定が完了します。

telnetで送信テスト

telnetをインストール

テストメールの送信telnetを利用します。

インストールされているかの確認コマンド

$ apt list --installed | grep telnet

インストールされていなければ、telnetをインストール

$ sudo apt install telnet

telnetでSMTP接続

telnetコマンドでSMTP接続を実行します。

$ telnet localhost 25

正常接続できればステータスコード220が返ってきます。

Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 mail.(ドメイン名) ESMTP Postfix (Ubuntu)

入力待機状態となるため下記のheloコマンドで応答します。

helo localhost

問題なければステータスコード 250が返ってきます。

250 mail.(ドメイン名)

mail fromコマンドで送信元のメールアドレスを指定します。

mail from:(Ubuntuにログインしているユーザ名)@(ドメイン名)

250 2.1.0 Ok

rcpt to: コマンドで実際に確認できる送信先を指定します。

rcpt to:hoge@test.com(送信先のメールアドレス)

250 2.1.5 Ok

メール本文を作成していくので、dataコマンドでメール本文を入力していきます。

data
354 End data with .
Hello! sendmail test

本文入力後、`.` で入力でメール作成を終了します。

.
250 2.0.0 Ok: queued as 17867FC6EB

ステータスコード250が返って来て、キューに入った表示となれば送信完了となります。

quitコマンドでSMTP接続を切断できます。

quit
221 2.0.0 Bye
Connection closed by foreign host.

送信先の受信ボックスを確認してメールが届いているか確認するのですが、大抵迷惑メールとして扱われていますので、迷惑メールボックスを確認。

現状のメールの認証はSPFのみPASSしている状況なので、追って設定していきます。

取り敢えず、送信確認は取れましたので、その他の設定としてメールアカウントマッピングを行っていきます。

メールアカウントマッピング

Linuxシステムのユーザーアカウントに、メールアカウントのマッピングします。

$ sudo vim /etc/postfix/virtual

info@example.comとcontact@example.comでメールを受信し、そのメールをLinuxユーザーのwebapp に配信したい場合は、以下の様に作成。

/etc/postfix/virtual

info@example.com webapp
contact@example.com webapp

マッピングを適用します。

$ sudo postmap /etc/postfix/virtual

Postfixプロセスを再起動して、すべての変更が適用。

$ sudo systemctl restart postfix

UFWファイアウォール設定で、Postfixサービスへの接続を許可。

$ sudo ufw allow Postfix

Postfixは外部接続を受け入れるように設定されました。

続いて、SASL認証や受信も行えるように、Dovecotの設定を行っていきます。

Ubuntu 20.04 LTS サーバ構築 – Dovecotインストール

Comment

Related Article

Ubuntu 20.04 LTS サーバ構築 – DKIM、DMARCを設定する

2022.05.01

Ubuntu 20.04 LTS サーバ構築 – Postfix Let’s EncryptでTLS化

2022.05.01

Ubuntu 20.04 LTS サーバ構築 – Postfix SASL認証

2022.05.01

Ubuntu 20.04 LTS サーバ構築 – Dovecotインストール

2022.05.01

Ubuntu 20.04 LTS サーバ構築 – Postfixインストール

2022.05.01

Ubuntu 20.04 LTS サーバ構築 – Let’s EncryptでSSL/TLS化

2022.05.01

Ubuntu 20.04 LTS サーバ構築 – Nginxインストール

2022.05.01

Ubuntu 20.04 LTS サーバ構築 – 初期セットアップ

2022.05.01

Ubuntu 18.04 LTSで OpenGL開発

2019.05.20

平成最後のお買い物!!「Logicool MX Master 2 Wireless Mouse」と「K780 マルチデバイス BLUETOOTH® キーボード」で快適PC生活。

2019.04.27

CATEGORY LIST

LATEST NEWS

Mac 容量足りない問題は、外付けSSDで快適に解決!おすすめ外付けSSD

mac

2024.10.16

Z80エミュレータ- EMUZ80の組み立て

電子工作

2024.10.13

Mac VSCodeで、SFML C++開発環境を作る。

C++

2024.09.09

Rust-SDL2 examplesをすべて試す

Rust

2024.09.01

JavaScriptで、DOMを放り投げる処理

JavaScript

2024.07.27

Rustで創る MOS 6502 CPU その2

Rust

2024.07.23

Rustで創る MOS 6502 CPU その1

Rust

2024.07.19

汎用 3D mesh/model viewerを求め。と、簡単に、FBXファイルをglTF(glb)に変換ツールを求め。

C++

2024.06.06

M1 Macで、OpenGL GLUTを使ってコンパイルする

C

2024.04.27

Rust - Actix Web mongo ユーザー登録 JWT認証

Rust

2024.03.24

Rust - Actix Web JWT 認証認可 APIの作成

Rust

2024.02.25

Rust - Actix Web × JSON 静的ファイルをAPIで返却

Rust

2024.01.19

RANKING

Follow

SPONSOR

現在、掲載募集中です。



Links

About Us

WEBデザイナーの、WEBデザイナーによる、WEBデザイナーの為のサイト。「みんなで書こう!」と仲間を募ってみたが、結局書くのは自分だけとなってしまいました。日々のメモを綴っていきます。

Entry Profile

Graphical FrontEnd Engineer
- Daisuke Takayama

MAD CITY 北九州市で生まれ育つ。20代はバンド活動に明け暮れ、ふと「webデザイナーになりたい。」と思い、デジタルハリウッド福岡校入学。卒業後、数々の賞を受賞、web業界をざわつかせる。
現在、主に、ゲーム制作中心に港区六本木界隈で活動中。

FOLLOW US