メールサーバーを設定するにはどうすればよいですか?


59

私のVPSはUbuntuを実行しています。私のドメインへのメールを受信できるようにしたいと思います。

これを行うためにメールサーバーを簡単に設定するにはどうすればよいですか?


3
すばらしい質問です。すばらしい答えを待っています。私は長年にわたっていくつかのメールサーバーを構築してきましたが、決して簡単ではありませんでした。多くの決定:どのSMSサーバー、どのIMAP / POP、メールの保存方法、ユーザーの保存方法...私は簡単な答えを出すことができません。
ハビエルリベラ

回答:


48

これが私たちの生産マシンでメールをセットアップする方法です。必要な基準は次のとおりです。

  • メールアカウント
  • メールエイリアス(フォワーダー)
  • IMAP、POP3、およびSMTP

「簡単」(tl; dr)

最初に、最も簡単な解決策と思われるものに対処したいと思います。

sudo tasksel install mail-server

我々はこれをしようとしたときにこれにいくつかの問題が発生しました:まず、それはほとんどの罰金ですDovecotのを、インストールされますが、我々はのための2つの優れていることが宅配便とみなしてきた私たちのニーズ。第二に、素晴らしいPostfixを利用しますが、より強力なMTA / SMTPサーバーであるEximも必要です。3番目に、MySQLをインストールします-私が利用する構成では、構成が1つ少ないため、構成にフラットファイルを使用します。何らかの理由でMySQLがクラッシュした場合にどうなるかを考えてください。それ以外の場合、残りのパッケージは非常に単純で、小規模なメールサービス用に簡単に管理できます(合計で1〜2個の電子メールドメインを考えてください)。

私たちの構成

ディレクトリ構造

通常の構成のパスから少し外れていますが、管理が容易になります。

当社のメールはすべてに格納されて/var/mail/virtual/<domain>/<user>/mail、私は使うことになる将来の例については、そうemail@example.comfwd@example.comfoo@example.com電子メールアドレス、に行くフォワーダ表現するためにexample@gmail.com、それぞれ、不良アドレスを。上記の例では、になります/var/mail/virtual/example.com/email/mail

サーバー上のすべてのドメインのリストも保持していますが/etc/valiases、それについては後で詳しく説明します。

後置

これは多かれ少なかれセットアップの簡単な部分です。postfixパッケージをインストールするだけです。

Exim

Eximをインストールしapt-get install exim4 exim4-base exim4-config exim4-daemon-heavyたら、Eximのデフォルト設定を編集して、次の値を置換または追加する必要があります。

domainlist local_domains = @:localhost:dsearch;/etc/valiases:dsearch;/var/mail/virtual
daemon_smtp_ports = smtp : 587 : 465
MAIN_TLS_ENABLE = yes

(これらの行はファイルの異なる部分に表示され、それぞれを適宜置き換えます)

それが完了したら、Exim構成を再構築します。update-exim4.confこれでEximに必要な変更が完了します

宅配便

宅配便をインストールしcourier-base、このインストールする必要がありcourier-authdaemoncourier-authlib*courier-imap*courier-pop*courieruserinfocourier-ssl

正直なところ、標準外の設定はあまりありません。ユーザーデータベースを作成するだけです。

アカウント

EximとCourierは、ログインまたは受信メールが有効かどうかを確認するためにいくつかの場所をチェックします。Eximは、ドメインがローカルホスト名としてリストされているかどうか、ドメインが属しているかどうか、ドメインがにあるかどうかをチェック/var/mail/virtual/etc/valiasesます。

メールアカウントを作成する

私は最終的にこのプロセスを合理化するためにいくつかのツールを作成しましたが、新しいユーザーを追加すると次のようになります。

mkdir -p /var/mail/virtual/example.com/email
chown -R mail.mail /var/mail/virtual/example.com/
maildirmake /var/mail/virtual/example.com/email/mail
chown -R mail.mail /var/mail/virtual/example.com/

次に、クーリエuserdbにアドレスを追加します-彼らがログインできるように

userdb email@example.com set uid=8 gid=8 home=/var/mail/virtual/example.com/email mail=/var/mail/virtual/example.com/email/mail

必要に応じて値を置き換えてください。また、 - uidgid 必要なメールユーザーの数値ユーザー/グループIDであることを。

userdbpw -md5 | userdb email@example.com set systempw

パスワードの入力を求められますので、アカウントに使用したいパスワードを入力してください。

makeuserdb

最後に、userdbハッシュ/シャドウファイルを生成します。Courierを再起動し、変更が機能するかどうかをテストします。

authtest email@example.com

次のようなものを生成する必要があります

Authentication succeeded.

     Authenticated: email@example.com  (uid 8, gid 8)
    Home Directory: /var/mail/virtual/example.com/email
           Maildir: /var/mail/virtual/example.com/email/mail
             Quota: (none)
Encrypted Password: $1$LOLCATS$THISWILLBEAHASH.
Cleartext Password: (none)
           Options: (none)

「認証に失敗しました:操作は許可されていません」と表示される場合は、代わりに/ etc / courier / authdaemonrcを編集し、authuserdbをauthmodulelist行に追加します。

すべてのテストが確認されたらcourier-authdaemon、関連するさまざまなサービスを再起動し(、exim4)、ポート143、25、586、495、110を開き、お気に入りのメールクライアントでアカウントを設定します。

メールエイリアスの作成

ドメインごとに/etc/valiases、少なくとも次の行を使用してファイルを作成する必要があります(存在しない場合は作成します)。

*: :fail: No user at this address.

これが言うこと:受信メールがファイルにあるメールアカウントと一致しない場合-メールは失敗し、「このアドレスにユーザーはいません」というメッセージが返ってくるはずです。したがって、送信するすべてのメールはfoo@example.com失敗として返送されます。

ただし、他の場所で管理したいメールアドレスがいくつかあります。たとえば、example @ gmail.comを作成するに/etc/valiases/example.comは、ファイルの内容を次のように作成する必要があります。

fwd: example@gmail.com
*: :fail: No user at this address.

そうすれば、fwd @ example.comはサーバー上のどの電子メールアカウントとも一致しませんが、/etc/valiasesファイル内で一致し、メールはexample@gmail.comに転送されます-ただし、foo @ example.comは引き続き失敗します「このアドレスにユーザーはいません」というメッセージ。


11
これにはISBN番号が付いていますか?
ウェスリー

1
@WesleyDavid bashの履歴がISBNとして表示されるとは思わない:)
マルコ・セピ

これらに続いて-ありがたいことに-authtest行で得たエラーをカバーするために上記で編集しました。
ダレングリーブス

@DarrenGreavesありがとう!助けてくれて、更新してくれてありがとう!
マルコセッピ

このすべてを機能させるのに苦労しています-debian-administration.org/articles/140から(ルーティング用に編集された)350ルーティングファイルを追加したときにのみ、エイリアスルーティングが機能するようになりました-仮想ドメインはまったく機能しません-ルーティングファイルを追加する必要がありましたか?じゃ
ダレングリーブス

14

最も簡単な方法は、実行することsudo tasksel install mail-serverです。これにより、正常なデフォルトのメールサーバーが提供されます。あなたがしなければならないことは、いくつかの質問に答えることです。もちろん、必要な場合は後で手動で構成することもできますが、ほとんどの場合は手動で構成する必要はありません。画面上の指示に従うだけで大丈夫です。

ただし、電子メールサービスの管理について読むことをお勧めします。

公式リファレンス:


それが何をするのかを見る怠itな方法はありますか(インストールするパッケージ、デフォルト設定)?怠け者とは、自分でインストールすることを意味します。
ハビエルリベラ

あなたは内容が実行してインストールされているものを見ることができます@Javiersudo tasksel --task-packages mail-server
マルコケッピは

MySQLの中に保存されたコンフィギュレーション、無アンチスパム、アンチウイルスなし...それが私たちのための非常に便利ません。:(
ハビエル・リベラ


4

これを自分でやっただけで、実際には後置が必要になります。私の場合は、imapサーバーも必要で、別のマシンで素敵なguiクライアント(名前は言及しません)を使用できます。私はこれらの文書を使用しました:

後置

Dovecot(imapおよびpop3)

実際には非常にシンプルで、数分で起動して実行され、電子メールを受信して​​います。これは、すべてが正常に設定されていることを確認するのにも役立ちます。

ああ、あなたはもちろん、(私のために働いた設定に基づいて)以下のようにDNSエントリを正しく設定する必要があります:

name   type   content
  @      A     ???.???.??.??    
mail     A     ???.???.??.??

そして

         MX Records
Name                 Priority
mail.mydomain.com.      1
mail2.mydomain.com.     2

メールサーバーの最後で完全に停止することに注意し、必要に応じてIPアドレスとドメイン名を挿入します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.