セットアップセットアップを使用して独自のメールサーバーをubuntu


私は新しいプロジェクトにメールを送る必要があった.私は、まずSaaSサービスを調査しました.彼らによって提供される無料のパッケージは、少量のメールを送っています.私がプログラマである限り、私は自分のメールサーバーをホストすることを決めました.
いくつかの研究の後、私はpostfix送信のみの設定で滞在することを決めた.どのようにインストールし、SMTPサーバーのメールを送信し、迷惑メールフォルダに送信しないように設定してください.

必要条件
私は、1ヵ月につきちょうど2.5米ドルのためにUbuntu 18.04で一つの中心的なVPSを使いました.私の主なアプリは、電子メールのキューとしてDBのテーブルを使用しているので、私は2つのNodeJSアプリがあります:1つのキューを処理し、2番目の配信ステータスを取得し、メインアプリケーションのDBでそれを更新します.あなたがそれを見たいなら教えてください.ここではPostfix部分だけです.
私もドメインがあります.例にしてみよう.ここでCOM.それがウェブサイトのために使われるので、私はサブドメイン電子メールを使用しています.例.メールサーバーのCOM.

Postfixインストール
以下のコマンドを使ってpostfixをインストールします.
sudo apt-get update
sudo apt install mailutils
インストール中に、メール設定の種類のインターネットサイトのオプションを選択します.システムメール名としてドメイン名を入力します.COM .
このコマンドでドメインを後で表示できます.
cat /etc/mailname

サーバの設定
メイン設定ファイルをエディタで開きます.
sudo nano /etc/postfix/main.cf
インタフェースパラメタを見つけて、ループバックだけにそれを変えてください.そのパラメータを使用すると、PostfixはVPSの外部からの接続をリッスンしません.
inet_interfaces = loopback-only
現在変更するパラメータと値
mydestination = $myhostname, localhost.$mydomain, localhost
メールドメインをサーバのホスト名として設定します.
sudo hostnamectl set-hostname email.example.com
ホスト名をコマンドでチェックします.
hostname --f
/etc/hostsファイルを編集し、リモートIPでサブドメインを追加します.
1.2.3.4    email.example.com email
設定変更後にPostfixを再起動するコマンド
sudo systemctl restart postfix
現在の設定を確認するコマンド
postconf -d

署名を作成する
DKIMツールのインストール
sudo apt-get install opendkim opendkim-tools
ユーザをグループに追加します.
sudo gpasswd -a postfix opendkim
設定ファイル/etc/opendKimを開きます.conf:
sudo nano /etc/opendkim.conf
次に、設定ファイルで以下のパラメータを追加または更新します.
Socket              inet:8892@localhost
Canonicalization    simple
Mode                sv
SubDomains          no
AutoRestart         yes
AutoRestartRate     10/1M
Background          yes
DNSTimeout          5
SignatureAlgorithm  rsa-sha256
UserID              opendkim
KeyTable            refile:/etc/opendkim/key.table
SigningTable        refile:/etc/opendkim/signing.table
ExternalIgnoreList  /etc/opendkim/trusted.hosts
InternalHosts       /etc/opendkim/trusted.hosts
DKIMキーのフォルダを作成します
sudo mkdir -p /etc/opendkim/keys
フォルダのパーミッションを変更する
sudo chown -R opendkim:opendkim /etc/opendkim
sudo chmod go-rw /etc/opendkim/keys
表を作成する
sudo nano /etc/opendkim/signing.table
内容は
*@example.com    default._domainkey.example.com
次にキーテーブルを作成します.
sudo nano /etc/opendkim/key.table
内容は
default._domainkey.example.com     example.com:default:/etc/opendkim/keys/example.com/default.private
信頼ホストを追加
sudo nano /etc/opendkim/trusted.hosts
内容は
127.0.0.1
localhost
*.example.com
キーを作成する
sudo mkdir /etc/opendkim/keys/example.com
次にキーを生成します.
sudo opendkim-genkey -b 2048 -d example.com -D /etc/opendkim/keys/example.com -s default -v
秘密鍵ファイルの所有者を変更します
sudo chown opendkim:opendkim /etc/opendkim/keys/example.com/default.private
その後OpenPokelサービスを再起動します
sudo service opendkim restart
キーをチェック
sudo opendkim-testkey -d example.com -s default -vvv
postfix設定ファイル(/etc/postfix/main . cf )でパラメータを追加または更新します.
milter_default_action = accept
milter_protocol = 2
smtpd_milters = inet:localhost:8892
non_smtpd_milters = inet:localhost:8892
その後、Postfixを再起動します.
sudo systemctl restart postfix

DNS設定
いくつかのDNSレコードを設定する必要があります.その構成では、電子メールサービスはスパムとしてあなたの電子メールを扱いません.
メールの記録を追加します.例.COM
Type: A
Name: email.example.com
Value: 1.2.3.4
SPFレコードを追加します
Type: TXT
Name: example.com
Value: v=spf1 mx ~all
DMARCレコードを追加する
Type: TXT
Name: _dmarc
Value: v=DMARC1; p=none
DKIM記録を加えてください.以前に生成されたDKIM署名(/etc/opendkim/keys/example . com/default . txt )を使用します.
Type: TXT
Name: default._domainkey
Value: v=DKIM1; h=sha256; k=rsa; p=you-key-here-without-spaces
PTRレコード( RDNS )を設定します.あなたのホスティングプロバイダのコントロールパネルで設定する必要があります.
メールを設定します.例.ホスト名、4.3.2.1 .で指定します.IPアドレスとしてのARPA.IPは逆の順序でなければなりません.
以下のコマンドで正しく設定されているかどうかを調べます.
host 1.2.3.4

メール暗号化
certbotをインストールします
sudo apt install certbot
次にキーを生成します.
sudo certbot certonly --standalone -d email.example.com
Postfixをそのキーを使用するように設定します.追加または/etc/postfix/mainのパラメータを編集します.CF
smtpd_tls_cert_file = /etc/letsencrypt/live/email.example.com/fullchain.pem
smtpd_tls_key_file = /etc/letsencrypt/live/email.example.com/privkey.pem
smtpd_tls_security_level=may
smtp_tls_CApath=/etc/letsencrypt/live/email.example.com
smtp_tls_security_level=may
その後、Postfixを再起動します.
sudo service postfix restart

テスト
コマンドでテストメールを送信します.
echo "This is the body of the email" | mail -r test@example.com -s "This is the subject" [email protected]
オンラインサービスでスパムスコアをチェックしてください.