GNU/Linux >> Linux の 問題 >  >> Ubuntu

Ubuntu18.04にPostfixをインストールして設定する方法

Postfixは元々、sendmailの代替、よりシンプルでより安全なものとして開発された無料のメールサーバーです。このチュートリアルでは、Ubuntu18.04サーバーでPostfixメールサーバーをセットアップする方法を説明します。 Postfixを使用すると、仮想ユーザーを管理できます。そのために、仮想グループを作成します。仮想ユーザーにはpostfixadminを使用し、受信メールにはdovecotを使用して、メールサーバーを簡単に管理します。

理解する必要があること

メールを受信するための前提条件は、固定IP、独自のサーバー上で実行されているDNSサーバー、または記録を変更できるホスティングプロバイダーに対して実行されていることです。この構成で使用される頭字語をいくつか定義しましょう:

  • 後置 メール転送エージェント( MTA )メールの送受信に使用されます
  • ダブコット ローカル配信エージェント( LDA )インターネットメッセージングアプリケーションプロトコル(IMAP)およびポストオフィスプロトコル(POP3)サーバーを使用します。
  • SASL SimpleAuthenticationとSecureLayerによって定義され、ユーザーとサーバー間の認証を追加して、交換を保護します。
  • Postfixadmin メールボックス、仮想ドメイン、エイリアスを管理できるWebインターフェース
  • LEMP: Nginxを備えたWebサーバー およびPHP postfixadminにアクセスし、仮想ユーザーとドメインを簡単に管理するには、 MySQL すべての情報を保存します。

Postfixには2つのタイプのドメインがあります:

  • ローカルドメイン /etc/passwdにリストされているシステムユーザーに電子メールを配信するために使用されます ファイル。
  • 仮想ドメイン /etc/passwdに存在するシステムアカウントを必要としない ファイル。ユーザーアカウント管理にMySQL、PostgreSQL、またはLDAPを使用することにより、メールサーバーシステムで数千のメールアカウントを非常に簡単に処理する方法を提供します。

ステップ1)Postfixadminをインストールして構成します

Postfixadminは、データベース内の仮想ドメインとユーザーを簡単に操作できるようにするWebモジュールです。

a)postfixadminをダウンロード

まず、必要なパッケージをインストールします

# apt install php-imap php-mbstring php7.2-imap php7.2-mbstring
Reading package lists... Done
Building dependency tree 
Reading state information... Done
...
...

通常、postfixadminはUbuntu 18.04のデフォルトのリポジトリに存在しますが、NginxとMySqlの代わりにApacheとPostgreSQLをインストールしようとします。したがって、構成を維持するために、実際の最新バージョン3.2をダウンロードします。 Githubサイトプロジェクトのソースから、/optに保存します フォルダ

# wget -P /opt https://github.com/postfixadmin/postfixadmin/archive/postfixadmin-3.2.tar.gz
--2018-06-11 21:53:14--  https://github.com/postfixadmin/postfixadmin/archive/postfixadmin-3.2.tar.gz
Resolving github.com (github.com)... 192.30.255.113, 192.30.255.112
Connecting to github.com (github.com)|192.30.255.113|:443... connected.
HTTP request sent, awaiting response... 302 Found

次に、そのフォルダに移動して解凍します。

# cd /opt && tar xvf postfixadmin-3.2.tar.gz

名前を変更する必要があります

# mv postfixadmin-postfixadmin-3.2/ postfixadmin

Postfixadminは、setup.phpというスクリプトを使用します インストール中にWebサーバーを介して使用します。以前のバージョンのpostfix(3.1および最も古い)では、このスクリプトはPostfixadminルートフォルダーに直接ありますが、実際のバージョン(3.2)では、サブディレクトリpublicに含まれています。 postfixadminフォルダーの。通常、postfixadminをNginx Webサーバーのルートフォルダーに移動する必要がありますが、この新しいバージョンでは、スクリプトを含むパブリックフォルダーのシンボリックリンクのみを作成し、セキュリティのために名前を変更します

# ln -s /opt/postfixadmin/public/ /var/www/html/pfa
root@li1002-235:~# ls -l /var/www/html/
total 4
-rw-r--r-- 1 root root 612 Jun 10 04:51 index.nginx-debian.html
lrwxrwxrwx 1 root root  25 Jun 12 04:01 pfa -> /opt/postfixadmin/public/

b)接尾辞データベースを作成します

次に、いくつかの構成でmysqlデータベースに接続する必要があります

# mysql -u root -p
Enter password:

次に、データベースとユーザーを作成します

mysql> CREATE DATABASE postfix;
Query OK, 1 row affected (0.00 sec)

mysql> CREATE USER 'postfix'@'localhost' IDENTIFIED BY 'postfix-db-password';
Query OK, 0 rows affected (0.00 sec)

mysql> GRANT ALL PRIVILEGES ON `postfix` . * TO 'postfix'@'localhost';
Query OK, 0 rows affected (0.00 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

mysql> exit
Bye

c)postfixadminを構成します

データベースを構成したので、postfixadminにデータベースを指定して、情報の入手先を認識できるようにする必要があります。これを行うには、/opt/postfixadmin/config.local.phpを作成します ファイルを作成し、以下のコンテンツを追加します

# vim /opt/postfixadmin/config.local.php

<?php
$CONF['database_type'] = 'mysqli';
$CONF['database_user'] = 'postfix';
$CONF['database_password'] = 'postfix-db-password';
$CONF['database_name'] = 'postfix';

$CONF['configured'] = true;
?>

postfixadminには、templates_cという名前のサブフォルダーへのアクセス許可が必要です。 それは存在しません。したがって、以下のようなインストール中のエラーを回避するために、

手動で作成し、www-dataを指定する必要があります chownコマンドを使用した所有権。

# mkdir /opt/postfixadmin/templates_c && chmod 755 -R /opt/postfixadmin/templates_c
# chown -R www-data:www-data /opt/postfixadmin/templates_c

次にもう一度試してください。これで動作し、すべての構成がチェックされ、phpとUbuntuのバージョンが表示されます

次に、セットアップ用のパスワードを作成し、そのハッシュを生成する必要があります

これで、superadminアカウントを作成できるようになり、セットアップパスワードを使用できるようになります。 あなたが作成したもの。ただし、このためには、/opt/postfixadmin/config.local.phpを編集する必要があります 生成されたパスワードハッシュの値を追加するためのファイル。次に、スーパー管理者アカウントの作成に進みます

これで、アカウントが追加されたことがわかります。

ご覧のとおり、リンクhttp:// your-ip-or-domain / pfa

を使用して、アカウントでpostfixadminにログインできます。

このページが表示されない場合は、nginxエラーログファイルを確認してください

# tail -n 20 -f /var/log/nginx/error.log

また、/opt/postfixadmin/templates_cに適切な権限があることを確認してください フォルダ。ログインすると、各メニューの説明が表示されます。

d)仮想ドメイン、ユーザー、エイリアスを作成する

次に、仮想ドメインを作成し、次にユーザーを作成します。ドメインは、 mytuto.comなどのドメイン名です。 。同じサーバーを使用して、ドメインにメールを送信できます。開始すると、ドメインはありません。ドメインを追加するには、ドメインリスト->新しいドメインに移動します 。

次に、ドメインに関する情報を入力します。エイリアスとメールボックスの数を制限できます。 MXレコードを追加することを忘れないでください。値の選択が終了したら、ドメインを追加します。

仮想ドメインが作成されたので、ドメインリストで確認できます

これで、仮想ユーザーを作成できます。これを行うには、仮想リスト->メールボックスの追加に移動します 。

エイリアスを作成することもできます。これらは、メールを別のアカウントにリダイレクトするメールアドレスです。通常、メールサーバーにはメールアドレスが必要です不正行為 、たとえば、ドメインからのスパムを報告できるようにします。したがって、ドメインから先ほど作成したユーザーへのエイリアスの悪用を作成するだけです。これを行うには、仮想リスト->エイリアスの追加に移動します 。

これらの仮想パラメーターはすべて最後に作成できますが、postfixの構成の次のステップで役立ちます。

ステップ2)postfixをインストールして設定する

a)postfixをインストールする

これで、接尾辞パッケージをインストールできます。

# apt install postfix postfix-mysql sasl2-bin
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  db-util db5.3-util libmysqlclient20 ssl-cert
Suggested packages:
  procmail postfix-pgsql postfix-ldap postfix-pcre postfix-lmdb
...
...

メールの種類とメールサーバーの名前に関する2つの質問に答える必要があります。必ずホスト名を置き換えてください およびドメイン あなたの価値観

  • メール構成の種類:インターネットサイト
  • システムメール名: hostname.domain.com

構成ファイルを編集して、起動時にsaslが実行されることを確認します

# vim /etc/default/saslauthd

# Should saslauthd run automatically on startup? (default: no)
START=yes

ここでサービスを再起動します

# systemctl restart saslauthd

仮想ユーザーでメールサーバーを構成しているため、すべてのメールボックスの所有者が必要です。これにより、サーバー上の電子メールにアクセスするためにすべての仮想ユーザーが使用するシステムユーザーが作成されます。まず、グループの所有者とメールボックスを保存するフォルダを作成します。

# groupadd -g 5000 vmail && mkdir -p /var/mail/vmail

次に、所有者を作成します

# useradd -u 5000 vmail -g vmail -s /usr/sbin/nologin -d /var/mail/vmail

メールを適切なディレクトリに保存できるように、所有者にメールディレクトリの許可を与えるようにしてください。

# chown -R vmail:vmail /var/mail/vmail

これを行わないと、dovecotはメールを保存するために必要なフォルダを作成できません。

b)データベースの構成ファイルを作成します

次に、いくつかのデータベースファイルを含むフォルダを作成します

# mkdir -p /etc/postfix/sql

Postfixには、以前に作成したデータベースにアクセスできるようにする03のデータベースファイルが必要です:

  • ドメイン サーバーでホストされているドメイン名のリストが含まれます。これにより、postfixは、サーバーがドメインを担当しているかどうかを判断できます(mytuto.com) メールを受信したとき[email protected] その上に。その場合は、ドメインがデータベースにあることを意味します。
# vim /etc/postfix/sql/mysql_virtual_domains_maps.cf
user = postfix
password = postfix-db-password
hosts = 127.0.0.1
dbname = postfix
query = SELECT domain FROM domain WHERE domain='%s' AND active = '1'

構成を有効にして、/etc/postfix/main.cfに自動的に追加します 手動で行う必要がないように、postfix設定をファイルしてリロードします。したがって、このコマンドを新しい値で使用するたびにファイルが更新されます。

# postconf -e virtual_mailbox_domains=mysql:/etc/postfix/sql/mysql_virtual_domains_maps.cf

これで、構成を確認できます。データベース内のドメインを検索するために、ファイルに含まれているクエリを実行するコマンドを実行します。ドメインが存在しない場合は、要素(検索されたドメイン)を返すか、何も返さない必要があります。

# postmap -q mytuto.com mysql:/etc/postfix/sql/mysql_virtual_domains_maps.cf
mytuto.com

ご覧のとおり、postfixはデータベースに保存されているドメインを取得できます

  • メールボックス すべての仮想電子メールアドレスを保存します。メールボックスが存在するかどうかを確認するためにも使用されます
# vim /etc/postfix/sql/mysql_virtual_mailbox_maps.cf
user = postfix
password = postfix-db-password
hosts = 127.0.0.1
dbname = postfix
query = SELECT maildir FROM mailbox WHERE username='%s' AND active = '1'

それでは、構成ファイルを更新しましょう

# postconf -e virtual_mailbox_maps=mysql:/etc/postfix/sql/mysql_virtual_mailbox_maps.cf

コマンドを実行して、データベースでクエリをテストします

# postmap -q [email protected] mysql:/etc/postfix/sql/mysql_virtual_mailbox_maps.cf
mytuto.com/alain/
  • エイリアス さまざまなメールエイリアスを含めることができます。
# vim /etc/postfix/sql/mysql_virtual_alias_maps.cf
user = postfix
password = postfix-db-password
hosts = 127.0.0.1
dbname = postfix
query = SELECT goto FROM alias WHERE address='%s' AND active = '1'

次に、構成を追加します

# postconf -e virtual_alias_maps=mysql:/etc/postfix/sql/mysql_virtual_alias_maps.cf

次に、コマンドを実行してクエリをテストします。宛先ユーザーです[email protected] 不正使用アドレスではなく、表示する必要があります。 postfixがマッチングを実行できることを示しています。

# postmap -q [email protected] mysql:/etc/postfix/sql/mysql_virtual_alias_maps.cf
[email protected]

パスワードはクリアで保存されているため、通常のユーザーがこれらのファイルを読み取れないようにしてください。

# ls -l /etc/postfix/sql/
total 12
-rw-r--r-- 1 root root 138 Jun 13 06:53 mysql_virtual_alias_maps.cf
-rw-r--r-- 1 root root 140 Jun 13 05:18 mysql_virtual_domains_maps.cf
-rw-r--r-- 1 root root 144 Jun 13 07:04 mysql_virtual_mailbox_maps.cf

postfixがそれらのファイルを読み取るために、グループ所有者をpostfixに変更できます

# chgrp postfix /etc/postfix/sql/mysql_*.cf
# ls -l /etc/postfix/sql/
total 12
-rw-r--r-- 1 root postfix 138 Jun 13 06:53 mysql_virtual_alias_maps.cf
-rw-r--r-- 1 root postfix 140 Jun 13 05:18 mysql_virtual_domains_maps.cf
-rw-r--r-- 1 root postfix 144 Jun 13 07:04 mysql_virtual_mailbox_maps.cf

c)postfixを設定する

次に、postfixのメイン設定ファイルを手動で編集します。したがって、編集する前にコピーを作成してください

# cp /etc/postfix/main.cf /etc/postfix/main.cf.bak

次に、SASLをアクティブにして、電子メールを送信するための認証を強制し、認証をDovecotに渡します。必ず下に行を追加してください

# vim /etc/postfix/main.cf

# Allow authenticated users to send email, and use Dovecot to authenticate them. Tells Postfix to use Dovecot for authentication
smtpd_sasl_type = dovecot
## Path to the Postfix auth socket
smtpd_sasl_path = private/auth
## Tells Postfix to let people send email if they've authenticated to the server.
## Otherwise they can only send if they're logged in (SSH)
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
# Enable authentication only for those with a TLS connection.
smtpd_tls_security_level = may
smtpd_tls_auth_only = no
# Tells Postfix who can send email: SASL-authenticated users connecting from a network specified in 'mynetworks'
smtpd_recipient_restrictions = permit_mynetworks permit_sasl_authenticated reject_unauth_destination

それでは、/etc/postfix/master.cfを編集しましょう。 構成ファイル。これはプロセス構成ファイルです。以下の行を追加またはコメント解除し、前にコピーを作成することで、安全なSMTPポートを有効にします

# cp /etc/postfix/master.cf /etc/postfix/master.cf.bak
# vim /etc/postfix/master.cf
submission inet n       -       y       -       -       smtpd
  -o syslog_name=postfix/submission
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes
#  -o smtpd_tls_auth_only=yes
#  -o smtpd_reject_unlisted_recipient=no
#  -o smtpd_client_restrictions=$mua_client_restrictions
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
#  -o smtpd_helo_restrictions=$mua_helo_restrictions
#  -o smtpd_sender_restrictions=$mua_sender_restrictions
#  -o smtpd_recipient_restrictions=
#  -o smtpd_relay_restrictions=permit_sasl_authenticated,reject
  -o milter_macro_daemon_name=ORIGINATING
smtps     inet  n       -       y       -       -       smtpd
  -o syslog_name=postfix/smtps
  -o smtpd_tls_wrappermode=yes
  -o smtpd_sasl_auth_enable=yes
#  -o smtpd_reject_unlisted_recipient=no
#  -o smtpd_client_restrictions=$mua_client_restrictions
#  -o smtpd_helo_restrictions=$mua_helo_restrictions
#  -o smtpd_sender_restrictions=$mua_sender_restrictions
#  -o smtpd_recipient_restrictions=
#  -o smtpd_relay_restrictions=permit_sasl_authenticated,reject
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
  -o milter_macro_daemon_name=ORIGINATING

これで、postconf -nを実行できます いくつかのエラーをチェックするコマンド

# postconf -n
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
...
...

警告メッセージがない場合は、ファイルにエラーが含まれていないことを意味します。これでpostfixサービスを再開できます

# systemctl restart postfix
# systemctl status postfix
● postfix.service - Postfix Mail Transport Agent
   Loaded: loaded (/lib/systemd/system/postfix.service; enabled; vendor preset: enabled)
   Active: active (exited) since Wed 2018-06-13 10:16:02 UTC; 27s ago
  Process: 12225 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
 Main PID: 12225 (code=exited, status=0/SUCCESS)

ステップ3)Dovecotをインストールして構成します

Postfixがインストールおよび設定されたので、popおよびimapプロトコルを管理するためにpostfixをインストールする必要があります。これにより、メールを回復できます。

a)Dovecotのインストール

Dovecotパッケージは、Ubuntu18.04のデフォルトリポジトリにあります。 mysqlサポートを使用してインストールします。 ふるいを取り付けます これは、メールを対応するフォルダに自動的に配置するので便利です。これは、ドメインごとに、仮想ユーザーの対応するフォルダーを含む対応するフォルダーを作成して、その電子メールファイルを保存することを意味します。

# apt install dovecot-imapd dovecot-mysql dovecot-managesieved
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  dovecot-core dovecot-sieve libexttextcat-2.0-0 libexttextcat-data
Suggested packages:
...
...

ふるいを使用したくない場合は、それを理解してください 、ドメインごとに、メールを保存するために対応するフォルダを手動で作成する必要があります。ドメインが多い場合、これは簡単ではありません。

b)鳩小屋の構成

Dovecotの構成は、/etc/dovecot/conf.dの複数のファイルに含まれています。 。まず、/etc/dovecot/dovecot.confの内容を確認します これらの行にコメントを付けないようにする

!include_try /usr/share/dovecot/protocols.d/*.protocol
!include conf.d/*.conf

次に、構成ファイルを含むフォルダーに移動します

# cd /etc/dovecot/conf.d

編集します:

  • 10-auth.conf 回線を追加またはコメント解除して接続メカニズムを変更するファイル。 Dovecotはデフォルトでシステムユーザーを使用しますが、Mysqlユーザーを使用します
# cp 10-auth.conf 10-auth.conf.bak
# vim 10-auth.conf

auth_mechanisms = plain login
#!include auth-system.conf.ext
!include auth-sql.conf.ext
  • auth-sql.conf.ext SQL構成のファイル
# cp auth-sql.conf.ext auth-sql.conf.ext.bak
# vim auth-sql.conf.ext

passdb {
  driver = sql
  args = /etc/dovecot/dovecot-sql.conf.ext
}

userdb {
  driver = static
  args = uid=vmail gid=vmail home=/var/mail/vmail/%d/%n
}
  • それでは、/etc/dovecot/dovecot-sql.conf.extを編集しましょう。 SQLデータベースへの接続方法をdovecotに指示する
# cp /etc/dovecot/dovecot-sql.conf.ext /etc/dovecot/dovecot-sql.conf.ext.bak
# vim /etc/dovecot/dovecot-sql.conf.ext

driver = mysql
connect = host=127.0.0.1 dbname=postfix user=postfix password=postfix-db-password
password_query = SELECT username,domain,password FROM mailbox WHERE username='%u';
default_pass_scheme = MD5-CRYPT
  • 次に、10-mail.confを編集します。 メールロケーションディレクトリを設定するファイル
# cp 10-mail.conf 10-mail.conf.bak
# vim 10-mail.conf
mail_location = maildir:/var/mail/vmail/%d/%n/Maildir
mail_privileged_group = mail
  • 次に、10-master.confを編集します ソケットへの接続用のファイル。
# cp 10-master.conf 10-master.conf.bak
# vim 10-master.conf

service auth {
  unix_listener auth-userdb {
    mode = 0600
    user = vmail
  }

  unix_listener /var/spool/postfix/private/auth {
    mode = 0660
    user = postfix
    group = postfix
  }

  user = dovecot
}
  • 次に、LDA 15-lda.confを構成する必要があります メールを対応するフォルダに自動的に整理するためにふるいを示すファイル
# cp 15-lda.conf 15-lda.conf.bak
# vim 15-lda.conf

protocol lda {
  # Space separated list of plugins to load (default is global mail_plugins).
  mail_plugins = $mail_plugins sieve
}

vmailユーザーがdovecotを起動できるようにする場合は、許可を与える必要があります

# chgrp vmail /etc/dovecot/dovecot.conf

これで、dovecotサービスを再開できます

# systemctl restart dovecot

メールログでエラーを確認できます

# tail -n 20 -f /var/log/mail.log

c)ダブコットを接尾辞に統合する

dovecotを構成したので、dovecotで動作するように接尾辞を指定する必要があります。マスターPostfix設定ファイルを編集し、ファイルの最後に以下の行を追加します

# vim /etc/postfix/master.cf

dovecot   unix  -       n       n       -       -       pipe
  flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -f ${sender} -d ${user}@${nexthop}

次に、メインのPostfix設定ファイルを編集します

 # vim /etc/postfix/main.cf
virtual_transport = dovecot
dovecot_destination_recipient_limit = 1

次にpostfixを再起動します

# systemctl restart postfix

メールログでエラーを確認できます

# tail -n 20 -f /var/log/mail.log
Jun 14 08:10:00 myserver postfix/postfix-script[28361]: starting the Postfix mail system
Jun 14 08:10:00 myserver postfix/master[28363]: daemon started -- version 3.3.0, configuration /etc/postfix

すべての構成が適切であることがわかります。今、私たちはいくつかのテストを行う必要があります

ステップ4)メールサーバーのテスト

コマンドラインでのテストでは、メールを送信する前にmailutilsパッケージをインストールする必要があります

# apt install mailutils
Reading package lists... Done
Building dependency tree 
Reading state information... Done
The following additional packages will be installed:
 guile-2.0-libs libgc1c2 libgsasl7 libkyotocabinet16v5 libltdl7 libmailutils5 libntlm0 libpython2.7 libpython2.7-minimal libpython2.7-stdlib
 mailutils-common
...
...

次に、メールを送信して、ドメインとユーザーに対応するフォルダーが効果的に作成されているかどうかを確認する必要があります。そのために、最初に、設定中にpostfixadminで作成された現在のユーザーにメールを送信します

# echo "Hello Alain" | mail -s "test mail" [email protected]

まず、メールログを確認しましょう

 # tail -n 20 -f /var/log/mail.log

Jun 14 08:17:04 myserver postfix/qmgr[28374]: 1715240BF9: from=<[email protected]>, size=384, nrcpt=1 (queue active)
Jun 14 08:17:04 myserver dovecot: lda([email protected]): msgid=<[email protected]>: saved mail to INBOX
Jun 14 08:17:04 myserver postfix/pipe[28406]: 1715240BF9: to=<[email protected]>, relay=dovecot, delay=0.05, delays=0.02/0.01/0/0.03, dsn=2.0.0, status=sent (delivered via dovecot service)
Jun 14 08:17:04 myserver postfix/qmgr[28374]: 1715240BF9: removed

メールが正常に送信されたことがわかります。次に、対応するフォルダが作成されているかどうかを確認しましょう

# ls -R /var/mail/vmail/
/var/mail/vmail/:
mytuto.com

/var/mail/vmail/mytuto.com:
alain

/var/mail/vmail/mytuto.com/alain:
Maildir

/var/mail/vmail/mytuto.com/alain/Maildir:
cur  dovecot.index.cache  dovecot.index.log  dovecot-uidlist  dovecot-uidvalidity  dovecot-uidvalidity.5b222480  new  tmp

/var/mail/vmail/mytuto.com/alain/Maildir/cur:

/var/mail/vmail/mytuto.com/alain/Maildir/new:
'1528964224.M129536P28407.myserver,S=455,W=467'

/var/mail/vmail/mytuto.com/alain/Maildir/tmp:

フォルダが自動的に表示されることがわかります。より良いビューのために、コマンドツリーを試してみましょう。最初にインストールします

 apt install tree

それでは、メールフォルダをより見やすく見てみましょう

# tree /var/mail/vmail/
/var/mail/vmail/
└── mytuto.com
    └── alain
        └── Maildir
            ├── cur
            ├── dovecot.index.cache
            ├── dovecot.index.log
            ├── dovecot-uidlist
            ├── dovecot-uidvalidity
            ├── dovecot-uidvalidity.5b222480
            ├── new
            │   └── 1528964224.M129536P28407.myserver,S=455,W=467
            └── tmp

6 directories, 6 files

今、あなたは完全に見ることができます。 postfixadminで新しい仮想ドメインとユーザーを作成することにより、別のテストを行うことができます。仮想ドメインを作成しましょうexample.com

および仮想ユーザー[email protected]

それでは、新しい仮想ユーザーにメールを送信しましょう

# echo "Hello Francois" | mail -s "test config" [email protected]

メールログを確認してください

# tail -n 20 -f /var/log/mail.log

Jun 14 08:35:10 myserver postfix/qmgr[28374]: CE43F40C5E: from=<[email protected]>, size=393, nrcpt=1 (queue active)
Jun 14 08:35:10 myserver dovecot: lda([email protected]): msgid=<[email protected]>: saved mail to INBOX
Jun 14 08:35:10 myserver postfix/pipe[28481]: CE43F40C5E: to=<[email protected]>, relay=dovecot, delay=0.06, delays=0.02/0.01/0/0.03, dsn=2.0.0, status=sent (delivered via dovecot service)
Jun 14 08:35:10 myserver postfix/qmgr[28374]: CE43F40C5E: removed

次に、フォルダツリーを確認します

# tree /var/mail/vmail/
/var/mail/vmail/
├── example.com
│   └── francois
│       └── Maildir
│           ├── cur
│           ├── dovecot.index.cache
│           ├── dovecot.index.log
│           ├── dovecot-uidlist
│           ├── dovecot-uidvalidity
│           ├── dovecot-uidvalidity.5b2228be
│           ├── new
│           │   └── 1528965310.M888145P28482.myserver,S=468,W=480
│           └── tmp
└── mytuto.com
    └── alain
        └── Maildir
            ├── cur
            ├── dovecot.index.cache
            ├── dovecot.index.log
            ├── dovecot-uidlist
            ├── dovecot-uidvalidity
            ├── dovecot-uidvalidity.5b222480
            ├── new
            │   └── 1528964224.M129536P28407.myserver,S=455,W=467
            └── tmp

ドメインがmytu​​to.comの2つのサブディレクトリがあることがわかります。 およびexample.com 異なるドメインの各仮想ユーザーのファイル。最後のテストを行いましょう。仮想ユーザーはメールを交換します

# echo "Hello Francois, it's Alain" | mail -s "Subject" -aFrom:alain\<[email protected]\> [email protected]

メールログを確認する

# tail -n 20 -f /var/log/mail.log

Jun 14 23:15:01 myserver postfix/pickup[28373]: 8558240BDA: uid=0 from=<[email protected]>
Jun 14 23:15:01 myserver postfix/cleanup[28595]: 8558240BDA: message-id=<[email protected]>
Jun 14 23:15:01 myserver postfix/qmgr[28374]: 8558240BDA: from=<[email protected]>, size=398, nrcpt=1 (queue active)
Jun 14 23:15:01 myserver dovecot: lda([email protected]): msgid=<[email protected]>: saved mail to INBOX
Jun 14 23:15:01 myserver postfix/pipe[28597]: 8558240BDA: to=<[email protected]>, relay=dovecot, delay=0.05, delays=0.02/0.01/0/0.03, dsn=2.0.0, status=sent (delivered via dovecot service)
Jun 14 23:15:01 myserver postfix/qmgr[28374]: 8558240BDA: removed

メールフォルダが表示されます

# tree /var/mail/vmail/
/var/mail/vmail/
├── example.com
│   └── francois
│       └── Maildir
│           ├── cur
│           ├── dovecot.index.cache
│           ├── dovecot.index.log
│           ├── dovecot-uidlist
│           ├── dovecot-uidvalidity
│           ├── dovecot-uidvalidity.5b2228be
│           ├── new
│           │   ├── 1528965310.M888145P28482.myserver,S=468,W=480
│           │   └── 1528966081.M582572P28598.myserver,S=455,W=467
...
...

newフォルダに2つのファイルが含まれていることがわかります。メールを含むファイルを開くことができます

# cat /var/mail/vmail/example.com/francois/Maildir/new/1528966081.M582572P28598.hostname\,S\=455\,W\=467 
Return-Path: <[email protected]>
Delivered-To: [email protected]
Received: by myserver.domain.com (Postfix, from userid 0)
        id 8558240BDA; Thu, 14 Jun 2018 23:15:01 +0000 (UTC)
Subject: Subject
From: alain<[email protected]>
To: <[email protected]>
X-Mailer: mail (GNU Mailutils 3.4)
Message-Id: <[email protected]>
Date: Thu, 14 Jun 2018 23:15:01 +0000 (UTC)

Hello Francois, it's Alain

それも機能することを示すコンテンツを見ることができます。

結論

NginxでPostfix、Dovecot、Postfixadminを使って完全に機能するメールシステムを設定する方法を知っています。最も重要なのは、問題に直面しないように適切な許可を与えることです。 LDAの代わりに他のプロトコルでdovecotを使用できることに注意してください。次回は、RoundCubeをインストールして、仮想ユーザーがWebインターフェイスを使用して電子メールを簡単に読み取れるようにする方法と、PhpMyAdminを統合してデータベースを簡単に操作する方法を紹介します。このチュートリアルを改善するために、コメントを送ってください。

お読みください:

  • Ubuntu 16.04(Dovecot-MySQL)でPostfixメールサーバーをセットアップする方法
  • How to Configure Postfix with Webmail on Ubuntu 18.04
  • How to Setup Greylisting Service on Postfix Mail Server
  • How to Setup Postfix Mail Server with DKIM
  • How to Setup Mail Server Using Postfix, MariaDB, Dovecot and Roundcube

Ubuntu
  1. Ubuntu20.04にAlgoVPNServerをインストールして構成する方法

  2. UbuntuにRedisサーバーをインストールして構成する方法

  3. Ubuntu13.10にApacheWebサーバーをインストールして構成する方法

  1. Ubuntu20.04にDHCPサーバーをインストールして構成する方法

  2. Ubuntu20.04にSquidプロキシをインストールして構成する方法

  3. Ubuntu20.04にPostfixをインストールして設定する方法

  1. Ubuntu20.04にNFSサーバーをインストールして構成する方法

  2. Ubuntu20.04にVNCをインストールして構成する方法

  3. Ubuntu18.04にVNCをインストールして構成する方法