開発者ドキュメント

CentOS6にPostfixをインストールする方法

ステータス:非推奨

この記事では、サポートされなくなったバージョンのCentOSについて説明します。 現在CentOS6を実行しているサーバーを運用している場合は、サポートされているバージョンのCentOSにアップグレードまたは移行することを強くお勧めします。

理由: CentOS 6は2020年11月30日に保守終了(EOL)に達し、セキュリティパッチまたはアップデートを受信しなくなりました。 このため、このガイドは維持されなくなりました。

代わりに参照してください:
このガイドは参照として役立つ場合がありますが、他のCentOSリリースでは機能しない場合があります。 可能な場合は、使用しているCentOSのバージョン用に作成されたガイドを使用することを強くお勧めします。

接尾辞について

Postfixは無料のオープンソースのメール転送エージェントで、メールのルーティングと配信を行います。 Cyrusは、メール自体を整理するのに役立つサーバーです。

ステップ1—PostfixとCyrusをインストールする

最初に行うことは、仮想プライベートサーバーにpostfixとCyrusをインストールすることです。これを行う最も簡単な方法は、yumインストーラーを使用することです。

sudo yum install postfix
sudo yum install cyrus-sasl
sudo yum install cyrus-imapd

プロンプトが表示されるたびに、プロンプトに「はい」と答えます。 すべてのコンポーネントがダウンロードされると、postfixとcyrusがインストールされます。

ステップ2—Postfixを設定する

両方のプログラムを別々に構成します。

まず、Postfixのメイン設定ファイルを開きます。

sudo vi /etc/postfix/main.cf

postfix設定ファイルは非常に便利で詳細であり、VPSでプログラムを起動して実行するために必要なほとんどすべての情報を提供します。 残念ながら、これは非常に長いファイルにもなります。

以下の推奨コードは、ほとんどの点で、すでにファイルにあるものの単純に短縮され、正しくコメントが付けられていないバージョンです。 postfixをセットアップするために必要なすべての構成を提供するクイックセットアップについては、以下の情報をコピーしてPostfixの現在の構成に貼り付けてください。 myhostnameとmydomainの下のドメイン名を修正するように注意してください。

myhostname行のexample.comをDNS承認済みドメイン名に置き換えます。 フレーズがまだmail.yourdomainnamehereであることを確認してください

mydomain行のexample.comを正しいドメイン名に置き換えます。

soft_bounce             = no
queue_directory         = /var/spool/postfix
command_directory       = /usr/sbin
daemon_directory        = /usr/libexec/postfix
mail_owner              = postfix

# The default_privs parameter specifies the default rights used by
# the local delivery agent for delivery to external file or command.
# These rights are used in the absence of a recipient user context.
# DO NOT SPECIFY A PRIVILEGED USER OR THE POSTFIX OWNER.
#
#default_privs = nobody

myhostname              = mail.example.com 
mydomain                = example.com

mydestination           = $myhostname, localhost
unknown_local_recipient_reject_code = 550

mynetworks_style        = host
mailbox_transport       = lmtp:unix:/var/lib/imap/socket/lmtp
local_destination_recipient_limit       = 300
local_destination_concurrency_limit     = 5
recipient_delimiter=+

virtual_alias_maps      = hash:/etc/postfix/virtual

header_checks           = regexp:/etc/postfix/header_checks
mime_header_checks      = pcre:/etc/postfix/body_checks
smtpd_banner            = $myhostname

debug_peer_level        = 2
debugger_command =
         PATH=/bin:/usr/bin:/usr/bin:/usr/X11R6/bin
         xxgdb $daemon_directory/$process_name $process_id & sleep 5

sendmail_path           = /usr/sbin/sendmail.postfix
newaliases_path         = /usr/bin/newaliases.postfix
mailq_path              = /usr/bin/mailq.postfix
setgid_group            = postdrop
html_directory          = no
manpage_directory       = /usr/share/man
sample_directory        = /usr/share/doc/postfix-2.3.3/samples
readme_directory        = /usr/share/doc/postfix-2.3.3/README_FILES

smtpd_sasl_auth_enable          = yes
smtpd_sasl_application_name     = smtpd
smtpd_recipient_restrictions    = permit_sasl_authenticated,
                                  permit_mynetworks,
                                  reject_unauth_destination,
                                  reject_invalid_hostname,
                                  reject_non_fqdn_hostname,
                                  reject_non_fqdn_sender,
                                  reject_non_fqdn_recipient,
                                  reject_unknown_sender_domain,
                                  reject_unknown_recipient_domain,
                                  reject_unauth_pipelining,
                                  reject_rbl_client zen.spamhaus.org,
                                  reject_rbl_client bl.spamcop.net,
                                  reject_rbl_client dnsbl.njabl.org,
                                  reject_rbl_client dnsbl.sorbs.net,
                                  permit

smtpd_sasl_security_options     = noanonymous
smtpd_sasl_local_domain         = 
broken_sasl_auth_clients        = yes

smtpd_helo_required             = yes 

ステップ3—接尾辞を完成させる

適切な設定を貼り付けた後、仮想サーバーでのpostfixの設定はほぼ完了しました。

エラーを未然に防ぐには、さらに2つの手順を実行する必要があります

設定では、次の行に仮想エイリアスを含めました。virtual_alias_maps = hash:/ etc / postfix / virtual; 次に、そのデータベースを設定する必要があります。

そのファイルを開きます。

sudo vi /etc/postfix/virtual

ファイル内のすべてのテキストを削除してから、次の1行を追加し、ユーザーの実際のユーザー名と、example.comの正しいドメインを置き換えます。

user@example.com   user\@example.com

保存して終了。

ターミナルにこれを入力してフォローアップ

postmap /etc/postfix/virtual 

これにより、仮想ファイルがルックアップテーブルに変わり、postfixが機能するために必要なデータベースが作成されます。

最後に、このコマンドを使用して終了します。これにより、postfixが何かを送信する前に予期する新しいファイルが作成されます。

touch /etc/postfix/body_checks 

すべてが完了したら、Cyrusを構成して終了できます。

ステップ4—Cyrusを構成する

最初のステップは、Postfix/SASLの認証を定義するsmtpd.confファイルをSASLディレクトリに追加することです。

sudo vi /etc/sasl2/smtpd.conf

先に進み、次のテキストをコピーして貼り付けます。

pwcheck_method: auxprop
auxprop_plugin: sasldb
mech_list: PLAIN LOGIN CRAM-MD5 DIGEST-MD5 

保存して終了。

次に、Cyrusファイルを構成する必要があります。

sudo vi /etc/imapd.conf

現在ファイルにあるものを削除し、以下の構成をファイルに貼り付けて、デフォルトのドメインとサーバー名を個人のドメイン名と一致するように変更します。

virtdomains:		userid
defaultdomain:		example.com
servername:		example.com
configdirectory:	/var/lib/imap
partition-default:	/var/spool/imap
admins:			cyrus
sievedir:		/var/lib/imap/sieve
sendmail:		/usr/sbin/sendmail.postfix
hashimapspool:		true
allowanonymouslogin:	no
allowplaintext:		yes
sasl_pwcheck_method:	auxprop
sasl_mech_list:		CRAM-MD5 DIGEST-MD5 PLAIN
tls_cert_file:		/etc/pki/cyrus-imapd/cyrus-imapd.pem
tls_key_file:		/etc/pki/cyrus-imapd/cyrus-imapd.pem
tls_ca_file:		/etc/pki/tls/certs/ca-bundle.crt

autocreatequota:		-1
createonpost:			yes
autocreateinboxfolders:		spam
autosubscribeinboxfolders:	spam 

保存して終了。

ステップ5—メールクライアントをインストールする

成功! VPSにPostfixとCyrusをインストールしました。 ただし、これらのプログラムはどちらも、電子メールの送信ではなく処理に関連しています。 コマンドラインからメッセージを送信する方法をすばやくインストールできます。

使用できるクライアントはさまざまです。ここでは、MailXに接続します。

yum install mailx

プロンプトに同意すると、mailxのインストールが完了します。

次に、電子メールを送信するには、このコマンドをターミナルに入力し、メッセージの送信先の電子メールに置き換えます。

mail user@example.org

ターミナルは件名を要求します。 1つ入力して、Enterキーを押します。 次の行で、メッセージを入力できます。 Enterキーを押し、ピリオドを入力した場合にのみ送信されます。

あなたの手紙は次のようになります:

[root@demoserver ~]# mail user@example.org
Subject: Hello
This is a test message.
Regards,

.
EOT 

おめでとうございます。これで、postfixがインストールされ、電子メールが実行されました。 これで、仮想プライベートサーバーを使用して電子メールを送信する準備が整いました。

EtelSverdlov著
モバイルバージョンを終了