このチュートリアルでは、高速で安全で美しいWebメールクライアントである[Mailpile](https://mailpile.is/)をUbuntu14.04にインストールします。
MailpileなどのWebメールクライアントを使用すると、標準の電子メールクライアントを構成しなくても、どこからでも電子メールにアクセスできます。 Mailpileは単なるメールクライアントです。つまり、既存のメールアカウントのみを管理します。
このチュートリアルの最後に、Nginxをリバースプロキシとして使用してMailpileを実行する完全に機能する[CVM](https://cloud.tencent.com/product/cvm?from=10680)があります。
チュートリアル全体を通して、** Mailpileはまだベータ段階**であることに注意してください。これは、エラーやその他の問題が発生する可能性があることを意味します。セッション間で情報が保存されることはありません。 (つまり、Mailpileサービスを再起動するたびに、アカウントの詳細を再入力する必要があります。)
また、サービスを実行する簡単な方法もありません。デフォルトでは、SSHセッションでインタラクティブスクリプトとしてのみ実行されます。 Screenを使用してバックグラウンドで実行するUpstartスクリプトが含まれているため、必要に応じてWebmailクライアントを維持できます。ただし、本番環境にはお勧めしません。
始める前に、いくつかのことが必要です。
** Ubuntu 14.04 を実行しているCVM。少数のメールボックスのみを処理するメールパイル設定の場合、少なくとも512MBのRAMを使用することをお勧めします。ユーザー数が少ないと予想される場合は、サイズを大きくする必要があります。サーバーをお持ちでない方は、[こちら](https://cloud.tencent.com/product/cvm?from=10680)から購入できますが、個人的には無料**のTencent Cloud [Developer Lab](https://cloud.tencent.com/developer/labs?from=10680)を使用して実験し、[サーバーを購入]( https://cloud.tencent.com/product/cvm?from=10680)。
ルートアクセス権を持つユーザー。 Linuxでsudoアクセス許可を持つユーザーを設定する手順については、[Linuxで非rootユーザーにsudoアクセス許可を追加する](https://cloud.tencent.com/developer/article/1200218?from=10680)チュートリアルを参照してください。
SSL証明書:この証明書の設定方法は、サーバーを解決できるドメイン名があるかどうかによって異なります。
ドメイン名をお持ちの場合、Webサイトを保護する最も簡単な方法は、無料の信頼できる証明書を提供する[Tencent Cloud SSL Certificate Service](https://cloud.tencent.com/product/ssl?from=10680)を使用することです。 【TencentCloudSSL証明書インストール操作ガイド】(https://cloud.tencent.com/document/product/400/6814?from=10680)を設定します。
ドメイン名をお持ちでない場合は、まずここ[ドメイン名の登録](https://dnspod.cloud.tencent.com/)にアクセスすることをお勧めします。この構成をテストまたは個人使用のみに使用する場合は、ドメイン名を購入しなくても自己署名証明書を使用できます。自己署名証明書は同じタイプの暗号化を提供しますが、ドメイン名検証のアナウンスはありません。自己署名証明書については、[Apacheの自己署名SSL証明書の作成](https://cloud.tencent.com/developer/article/1165840?from=10680)と[Nginxの自己署名SSL証明書の作成方法](https://cloud.tencent.com/developer/article/1160294?from=10680)の2つの記事を参照してください。
SSL証明書とキーの場所を書き留めます。チュートリアルに従ってNginxで使用する証明書を作成すると、次の場所に配置されます。
準備ができたら、最初のステップに進んでください。
このセクションでは、Mailpileをインストールするための作業環境を準備します。
まず、CVMにログインする必要があります。 sudoアクセス権を持つユーザーとしてログインしてください。
まず、Gitをインストールする必要があります。 Gitを使用して、GitHubからMailpileソースコードを複製します。
Ubuntuパッケージリストを更新します。
sudo apt-get update
Gitをインストールします。
sudo apt-get install git
Gitがインストールされたので、ディレクトリを解決可能な問題に変更しましょう。この場合、 / var
ディレクトリを使用します。
cd /var
メールのクローン:
sudo git clone https://github.com/mailpile/Mailpile.git
Gitがシステムディレクトリであるディレクトリ / var
を作成できるようにするには、sudoコマンドが必要です。
Mailpileを実行する準備ができました。 2番目のステップに進み、さらにリクエストの処理を開始します。
このセクションでは、Mailpile要件をインストールして構成します。
まず、pipをインストールしましょう。 pipはPythonパッケージマネージャーであり、いくつかのトリックがあります。
sudo apt-get-y install python-pip
pipを使用すると、Mailpile要件をより簡単にインストールできます。すぐにわかりますが、最初に何かをインストールする必要があります。
次に、lxmlをインストールする必要があります。 lxmlは通常pipによって実装されるMailpile要件ですが、不明な理由でインストールが失敗することがわかりました。したがって、apt-getを使用してインストールします。
sudo apt-get install python-lxml
GnuPGやOpenSSLなど、いくつかのパッケージを手動でインストールするだけで済みます。これらは私たちのメールのためのより安全な環境を作成します。それらのいくつかはデフォルトでインストールされるかもしれませんが、念のために確認します:
sudo apt-get install gnupg openssl libssl-dev
次に、Mailpileディレクトリに移動します。
cd /var/Mailpile
これで、pipの機能を使用して他の要件をインストールする準備が整いました。
Mailpileには、基本的に要件のリストである requirements.txt
というファイルが含まれています。 pipはこのリストを読み取り、それぞれを自動的にインストールできます。次に、これを実行しましょう。
sudo pip install -r /var/Mailpile/requirements.txt
これで完了です。すべての要件がインストールされており、Mailpileを使用できます。しかしその前に、セキュリティを強化するためにいくつかの追加の対策を講じる必要があります。
このセクションでは、NginxをMailpileのリバースプロキシとして構成します。これにより、Mailpileの安全性が高まり、SSL証明書を使用できるようになり、Webmailクライアントへのアクセスが容易になります。
Nginxを使用すると、Mailpileにアクセスする代わりに使用できます。はじめましょう! https://example.com:33411``https:// mailpile.example.com
まず、Nginxをインストールする必要があります。これがほとんどの作業になるためです。それでは、最初にNginxを入手しましょう。
sudo apt-get install nginx
Nginxがインストールされたので、リバースプロキシを設定できます。 Nginxの構成を編集して、サブドメインをMailpileにルーティングするように指示しましょう。
元のNginx構成ファイルは不要なものでいっぱいなので、削除したいと思います。しかし、最初に、バックアップを作成しましょう。最初にカタログを作成します。
sudo mkdir /home/backup
次に、バックアップを作成します。
sudo cp -b /etc/nginx/sites-enabled/default/home/backup
これで、何の影響もなくファイルを自由に削除できます。
sudo rm /etc/nginx/sites-available/default
それが実際に消えたことを確認しましょう:
ls /etc/nginx/sites-available/
Nginxをインストールしたばかりの場合、このコマンドは何も返しません。
次に、新しいファイルを作成します。
sudo nano /etc/nginx/sites-available/default
今がリバースプロキシを設定する時です。最初の部分から始めましょう。ファイルの先頭に以下を追加します(これが何をするかについては後で説明します)。
server {
listen 80;return301 https://$host$request_uri;}
これにより、Nginxは取得したリクエストをHTTPSにリダイレクトするようになります。しかし実際には、まだ存在していないものにリダイレクトしようとします。そのためのスペースを作成しましょう:
server {
listen 443;
server_name mailpile.example.com;
ssl_certificate /etc/nginx/ssl/nginx.crt;
ssl_certificate_key /etc/nginx/ssl/nginx.key;
ssl on;
ssl_session_cache builtin:1000 shared:SSL:10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
ssl_prefer_server_ciphers on;
access_log /var/log/nginx/mailpile.access.log;
注:証明書とキーが / etc / nginx / ssl / nginx.crt
と / etc / nginx / ssl / nginx.key
にあることを確認してください。それ以外の場合は、「ssl_certificate」と「ssl_certificate_key」の横のパスを更新して、証明書とキーの場所を一致させてください。
入力した内容は、Nginxにポート443(ポート80ではなくSSLアクセスのあるポートWebサイト)でリッスンし、SSL証明書を適用して、SSLをオンにするように指示します。次に、リダイレクト先の新しいHTTPS URLを実際に提供し、SSLを有効にする必要があります。次にこれを行います。
最初の2つのブロックの下に以下を追加します。
location /{
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# Fix the "It appears that your reverse proxy set up is broken" error.
proxy_pass http://localhost:33411;
proxy_read_timeout 90;
proxy_redirect http://localhost:33411 https://webmail.example.com;}}
完了すると、完成した構成ファイルは次のようになります。
server {
listen 80;return301 https://$host$request_uri;}
server {
listen 443;
server_name mailpile.example.com;
ssl_certificate /etc/nginx/ssl/nginx.crt;
ssl_certificate_key /etc/nginx/ssl/nginx.key;
ssl on;
ssl_session_cache builtin:1000 shared:SSL:10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
ssl_prefer_server_ciphers on;
access_log /var/log/nginx/mailpile.access.log;
location /{
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# Fix the "It appears that your reverse proxy set up is broken" error.
proxy_pass http://localhost:33411;
proxy_read_timeout 90;
proxy_redirect http://localhost:33411 https://webmail.example.com;}}
デフォルトのサイトを置き換えずに、別の名前でサーバーブロックファイルを作成した場合は、次のコマンドを使用して有効にする必要があります。
sudo ln -s /etc/nginx/sites-available/mailpile.example.com /etc/nginx/sites-enabled/
デフォルトのサイトはすでに有効になっているはずです。
次に、Nginxを再起動して、構成を再ロードします。
sudo service nginx restart
これで、Mailpileは https:// mailpile.example.com
に接続する準備が整いました。自己署名証明書を使用している場合は、SSL警告を受け入れる必要がある場合があります。
さらに、 http:// mailpile.example.com
にアクセスすると、SSLバージョンのサイトに自動的にリダイレクトされます。
Mailpileはまだ実行されていないため、これらのURLにアクセスすると、502 BadGatewayエラーが表示されます。このエラーの最も一般的な原因は、Mailpileアプリケーションが実行されていないことです。
Mailpileを実行するための4番目のステップに進みます。
このセクションでは、Mailpileを起動し、リバースプロキシで動作するように構成します。
正しいディレクトリにいることを確認してください。
cd /var/Mailpile
Mailpileを実行するには、次のように入力します。
. /mp
これで、コマンドラインまたはWebインターフェイスからMailpileの探索を開始できます。
警告の一言: Mailpile は停止後に設定を保存しません。したがって、時間をかけて構成する前に、サービスのように実行するオプションの次のステップを完了することをお勧めします。
Mailpileは https:// mailpile.example.com
に接続され、SSL証明書を使用してHTTPSにリダイレクトすることもできます。おめでとう!
CTRL-C
を使用してから、 quit
と入力してMailpileを終了できます。
Mailpileが常にアクティブであり、メールを処理する準備ができていることを確認するには、Upstartを使用してMailpileをサービスに変換します。
Mailpileはテスト段階にあるため、適切に保護されていません。また、インタラクティブなコマンドラインが必要なため、Pythonスクリプトを直接実行することはできません。このUpstartスクリプトは、Screenを介してPythonアプリケーションをサービスとして実行するハッキーな方法です。
sudo nano /etc/init/mailpile.conf
ファイルの内容は次のとおりです。
description "Mailpile Webmail Client"
author "Sharon Campbell"
start on filesystem or runlevel [2345]
stop on shutdown
script
echo $$ >/var/run/mailpile.pid
exec /usr/bin/screen -dmS mailpile_init /var/Mailpile/mp
end script
pre-start script
echo "[`date`] Mailpile Starting">>/var/log/mailpile.log
end script
pre-stop script
rm /var/run/mailpile.pid
echo "[`date`] Mailpile Stopping">>/var/log/mailpile.log
end script
Screenセッションが実行されている限り、このスクリプトはMailpileを開始し、その状態を維持します。画面セッションは正しく停止しないため、Mailpileを停止する場合は、画面セッションを手動で停止する必要があります。
このスクリプトを使用すると、次のコマンドでMailpileを起動できます。
sudo start mailpile
これにより、** root ユーザーは 12345.mailpile_init **という名前のScreenセッションを持ちます。
ただし、他のUpstartコマンドは機能しません。スクリーンセッションを手動で終了する必要があります。また、サービスがクラッシュまたは停止した場合は、サービスを再起動してすべての設定をリセットする必要があります。
このセクションでは、Webmailインターフェイスから使用される基本的なMailpileを紹介し、リンク https:// mailpile.example.com
を開きます。
これは、最初にMailpileにアクセスしたときに表示される画面です。
ドロップダウンメニューから言語を選択します。
「**開始」**ボタンをクリックします。
新しいパスワードを作成し、2回入力します。
[** Mailpileで開始] **ボタンをクリックします。
ログイン画面:作成したパスワードを入力してください。
** +アカウントの追加**ボタンを使用して、新しいアカウントを追加します。
ここから、所有しているメールアカウントの詳細を入力する必要があります。その特定のメールアカウントのメールアドレスとパスワードを入力する必要があります。 Mailpileは、これらの資格情報を使用してアカウントへの接続を試みます。これには数分かかる場合があります。
Mailpileがそれ自体で判別できない場合は、「メールの送信および**メールの受信」**を手動で入力することもできます。
Gmailは、MailpileがGmailアカウントの資格情報を使用できないようにするため、GmailアカウントをMailpileに追加することはできません。
ログイン後、次の画面が表示されます。
Mailpileに追加したアカウントの他のメールアカウントとテストメールを送受信してみてください。成功すると、Mailpileが自分のメールアドレスを使用していることがわかります。
その他のメールパイル機能
Mailpileは、さまざまな暗号化オプションも提供します。
Mailpileの使用を開始するには、[FAQ](https://www.mailpile.is/faq/)を参照してください。
その他の構成オプションについては、Mailpileコマンドラインから help
を実行してください。
おめでとうございます。これで、Ubuntu 14.04CVMで実行される独自のWebmailクライアントMailpileができました。 SSLが装備されており、WebサイトのHTTPSバージョンに自動的にリダイレクトされます。 Mailpileの美しいインターフェースを使用して、メールアカウントを設定し、連絡先、メール、カテゴリなどを管理できるようになりました。
Ubuntuのオープンソース情報チュートリアルの詳細については、[Tencent Cloud + Community](https://cloud.tencent.com/developer?from=10680)にアクセスして詳細をご覧ください。
参照:「Ubuntu14.04にMailpileをインストールする方法」
Recommended Posts