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

LinuxコマンドラインからGmailを送受信します

私はMuttユーザーです。 Linux端末の便利な場所でメールを表示して作成するのが好きです。 Muttのような軽量で最小限のクライアントを使用すれば、システムの仕様やインターネットアクセスに関係なく、自分の電子メールを利用できるようになります。そして、私はLinuxターミナルを頻繁に開いているので、私の電子メールクライアントは基本的にデスクトップの領域に足跡を残していません。ターミナルタブまたはマルチプレクサペインに隠されているため、不要な場合は無視できますが、必要な場合はすぐにアクセスできます。

Muttで一般的に認識されている問題は、私たちのほとんどが最近ホストされた電子メールアカウントを使用し、実際の電子メールプロトコルと表面的にしか対話しないことです。 Mutt(およびその前のELM)は、電子メールのチェックがuucpの呼び出しであったときに、より単純な時代に作成されました。 /var/mailを一瞥します 。ただし、テクノロジーの開発にうまく適合しており、POP、IMAP、さらにはLDAPなどのあらゆる種類の最新プロトコルでうまく機能するため、Gmailをメールホストとして使用している場合でもMuttを使用できます。

今日、独自のメールサーバーを実行することは比較的まれであり、Gmailは非常に一般的であるため、このチュートリアルでは、GmailでMuttを使用していることを前提としています。メールのプライバシーが心配な場合は、ProtonMailまたはTutanotaでアカウントを開設することを検討してください。どちらも完全に暗号化されたメールを提供します。 Tutanotaには多くのオープンソースコンポーネントがあり、ProtonMailは有料ユーザーにIMAPブリッジを提供するため、ブラウザーの外部で電子メールにアクセスする必要はありません。ただし、多くの企業、学校、組織は独自のメールサービスを実行せず、Gmailを使用しているだけなので、必要かどうかに関係なくGmailアカウントを持っている可能性があります。

独自の電子メールサーバーを実行している場合、Muttのセットアップは、この記事で説明するよりもさらに簡単なので、すぐに飛び込んでください。

Muttをインストール

Linuxでは、ディストリビューションのソフトウェアリポジトリからMuttをインストールしてから、.muttを作成できます。 構成ファイルを保持するディレクトリ:

$ sudo dnf install mutt
$ mkdir ~/.mutt

macOSでは、MacPortsまたはHomebrewを使用します。 Windowsでは、Chocolateyを使用します。

その他のLinuxリソース

  • Linuxコマンドのチートシート
  • 高度なLinuxコマンドのチートシート
  • 無料のオンラインコース:RHELの技術概要
  • Linuxネットワーキングのチートシート
  • SELinuxチートシート
  • Linuxの一般的なコマンドのチートシート
  • Linuxコンテナとは何ですか?
  • 最新のLinux記事

Muttはメールユーザーエージェント(MUA)です。つまり、その仕事は、電子メールを読み取り、作成し、送信メールスプールに送信することです。メールサーバーとの間で実際にメッセージを転送するのは、他のアプリケーションまたはサービスの仕事です(ただし、Muttとの統合は多く、そうでない場合でもすべての作業を実行しているように見えます)。このタスクの分離を理解する構成がもう少し意味をなすのに役立ちます。

また、通信する必要のあるサービスに応じて、(Muttに加えて)ヘルパーアプリケーションが必要な理由についても説明します。この記事では、IMAPを使用して、電子メールのローカルコピーと電子メールプロバイダーの電子メールのリモートコピーが同期されたままになるようにします。代わりにPOPを使用することにした場合、その構成はさらに簡単に構成でき、外部ツールなしで実行できます。ただし、IMAP統合には、GitHubリポジトリから入手できるPythonアプリケーションであるOfflineIMAPが必要です。

最終的には、python3 -m pipを使用してインストールできるようになります。 コマンドですが、この記事の執筆時点では、OfflineIMAPはまだPython2からPython3に移植されているため、手動でインストールする必要があります。

オフラインIMAPにはimaplib2が必要です 、これも開発が進んでいるので、手動でインストールすることも好みます。プロセスは同じです。Gitを使用してソースコードリポジトリのクローンを作成し、ディレクトリに移動して、pipを使用してインストールします。 。

まず、rfc6555をインストールします 依存関係:

$ python3 -m pip install --user rfc6555

次に、imaplib2をインストールします ソースから:

$ git clone [email protected]:jazzband/imaplib2.git
$ pushd imaplib2.git
$ python3 -m pip install --upgrade --user .
$ popd

最後に、ソースからOfflineIMAPをインストールします:

$ git clone [email protected]:OfflineIMAP/offlineimap3.git
$ pushd offlineimap3.git
$ python3 -m pip install --upgrade --user .
$ popd

WindowsでCygwinを使用している場合は、Portalockerもインストールする必要があります。

OfflineIMAPを構成する

オフラインIMAPは構成ファイル~/.offlineimaprcを読み取ります デフォルトでは。 offlineimap.confという名前のこのファイルのテンプレート は、OfflineIMAPをインストールするために複製したGitリポジトリに含まれています。サンプルファイルをホームディレクトリに移動します:

$ mv offlineimap3.git/offlineimap.conf ~/.offlineimaprc

お気に入りのテキストエディタでファイルを開き、それを読み通します。これはよくコメントされたファイルであり、利用可能なオプションに精通するのは良いことです。

これが私の.offlineimaprcです 例として、簡潔にするためにコメントを削除しました。一部の値はわずかに異なる場合がありますが、これにより、最終製品がどのように見えるかについての合理的なアイデアが得られます。

[general]
ui = ttyui
accounts = %your-gmail-username%
pythonfile = ~/.mutt/password_prompt.py
fsync = False

[Account %your-gmail-username%]
localrepository = %your-gmail-username%-Local
remoterepository = %your-gmail-username%-Remote
status_backend = sqlite
postsynchook = notmuch new

[Repository %your-gmail-username%-Local]
type = Maildir
localfolders = ~/.mail/%your-gmail-username%-gmail.com
nametrans = lambda folder: {'drafts':  '[Gmail]/Drafts',
                            'sent':    '[Gmail]/Sent Mail',
                            'flagged': '[Gmail]/Starred',
                            'trash':   '[Gmail]/Trash',
                            'archive': '[Gmail]/All Mail',
                            }.get(folder, folder)

[Repository %your-gmail-username%-Remote]
maxconnections = 1
type = Gmail
remoteuser = %your-gmail-username%@gmail.com
remotepasseval = '%your-gmail-API-password%'
## remotepasseval = get_api_pass()
sslcacertfile = /etc/ssl/certs/ca-bundle.crt
realdelete = no
nametrans = lambda folder: {'[Gmail]/Drafts':    'drafts',
                            '[Gmail]/Sent Mail': 'sent',
                            '[Gmail]/Starred':   'flagged',
                            '[Gmail]/Trash':     'trash',
                            '[Gmail]/All Mail':  'archive',
                            }.get(folder, folder)
folderfilter = lambda folder: folder not in ['[Gmail]/Trash',
                                             '[Gmail]/Important',
                                             '[Gmail]/Spam',
                                             ]

このファイルには、2つの置き換え可能な値があります:%your-gmail-username% および%your-gmail-API-password% 。最初の名前をGmailのユーザー名に置き換えます。これは、@gmail.comの左側にあるメールアドレスの一部です。 部。 2要素認証(2FA)の設定プロセスを通じてGoogleから2番目の値を取得する必要があります(メールをチェックするために2FAを使用する必要はありませんが)。

Gmail用に2FAを設定する

Googleは、ユーザーがGmailのウェブサイトをメールに使用することを期待しているため、Gmailのインターフェースの外でメールにアクセスしようとすると、基本的には開発者としてアクセスしていることになります(自分が開発者であるとは思わない場合でも)。つまり、Googleが「アプリ」と見なすものを作成しているということです。開発者レベルのアプリパスワードを取得するには 、2FAを設定する必要があります。そのプロセスを通じて、Muttが通常のブラウザインターフェイスの外部でログインするために使用できるアプリパスワードを取得します。

安全のため、復旧用のメールアドレスを追加することもできます。これを行うには、Googleのアカウントセキュリティページに移動し、リカバリメールまで下にスクロールします 。

2FAを設定するには、[アカウントのセキュリティ]ページに戻り、[2段階認証]をクリックします。 それをアクティブにして構成します。これには、セットアップに携帯電話が必要です。

2FAを有効にすると、新しいGoogleアカウントセキュリティオプションが表示されます:アプリのパスワード 。それをクリックして、Muttの新しいアプリパスワードを作成します。 Googleがパスワードを生成するので、パスワードをコピーして.offlineimaprcに貼り付けます。 %your-gmail-API-password%の代わりにファイル 値。

APIパスワードを.offlineimaprcに配置する ファイルはそれをプレーンテキストで保存しますが、これは危険な場合があります。私のホームディレクトリは暗号化されているので、長い間、私はこれを行い、それについてうまく感じました。ただし、セキュリティを強化するために、APIパスワードをGnuPGで暗号化するようになりました。これはこの記事の範囲をいくらか超えていますが、GPGパスワード統合を設定する方法を示す記事を書きました。

GmailでIMAPを有効にする

Gmailのウェブインターフェースに永遠に別れを告げる前に、最後にもう1つあります。GmailアカウントへのIMAPアクセスを有効にする必要があります。

これを行うには、Gmailのウェブインターフェースに移動し、右上隅にある[歯車]アイコンをクリックして、[すべての設定を表示]を選択します。 。 Gmailの設定 POP / IMAPをクリックします タブをクリックし、IMAPを有効にするの横にあるラジオボタンを有効にします 。設定を保存します。

これで、Gmailは、ウェブブラウザの外部からメールにアクセスできるように設定されました。

Muttの構成

これでMuttの設定がすべて完了したので、Muttの構成が簡単な部分であることを知って幸せになります。 .bashrc、.zshrc、および.emacsファイルと同様に、インターネット上で利用可能な非常に優れた.muttrcファイルの例が多数あります。構成ファイルについては、Kyle Rankin、Paul Frields、および他の多くの人からオプションとアイデアを借りたので、単純にするために、.muttrcファイルを必要不可欠なものだけに省略しました。

set ssl_starttls=yes
set ssl_force_tls=yes

set from='[email protected]'
set realname='Tux Example'

set folder = imaps://imap.gmail.com/
set spoolfile = imaps://imap.gmail.com/INBOX
set postponed="imaps://imap.gmail.com/[Gmail]/Drafts"
set smtp_url="smtp://smtp.gmail.com:25"
set move = no
set imap_keepalive = 900
set record="imaps://imap.gmail.com/[Gmail]/Sent Mail"

# Paths
set folder           = ~/.mail
set alias_file       = ~/.mutt/alias
set header_cache     = "~/.mutt/cache/headers"
set message_cachedir = "~/.mutt/cache/bodies"
set certificate_file = ~/.mutt/certificates
set mailcap_path     = ~/.mutt/mailcap
set tmpdir           = ~/.mutt/temp
set signature        = ~/.mutt/sig
set sig_on_top       = yes

# Basic Options
set wait_key = no
set mbox_type = Maildir
unset move               # gmail does that

# Sidebar Patch
set sidebar_visible = yes
set sidebar_width   = 16
color sidebar_new color221 color233

## Account Settings
# Default inbox
set spoolfile = "+example.com/INBOX"

# Mailboxes to show in the sidebar.
mailboxes +INBOX \
          +sent \
          +drafts

# Other special folder
set postponed = "+example.com/drafts"

# navigation
macro index gi "<change-folder>=example.com/INBOX<enter>" "Go to inbox"
macro index gt "<change-folder>=example.com/sent" "View sent"

このファイルの内容を変更する必要はありませんが、偽の名前Tux Exampleを置き換えることを検討してください。 および偽のアドレスexample.com あなたに当てはまる何かで。このテキストをコピーしてファイルに貼り付け、~/.mutt/muttrcとして保存します 。

Muttを起動

Muttを起動する前に、offlineimapを実行します ターミナルからコンピュータをリモートサーバーと同期します。これの最初の実行には長い時間がかかります 、一晩実行したままにします。

アカウントが同期したら、Muttを起動できます:

$ mutt

Muttは、電子メールアクティビティを整理するために必要なディレクトリを作成するための許可を求めるプロンプトを表示し、受信トレイのビューを表示します。

Muttを学ぶ

Muttの学習は、アプリケーションの探索と、.muttrc構成のお気に入りのハックの発見を組み合わせたものです。たとえば、私の設定ファイルには、メッセージを作成するためのEmacs、連絡先を検索できるLDAP、メッセージの暗号化と復号化ができるGnuPG、リンクハーベスティング、HTMLビューなどが統合されています。 Muttは、(電子メールクライアントにしたい限り)好きなように作成できます。実験を重ねるほど、発見が増えます。


Linux
  1. コマンドラインからリモートでLinuxワークスペースを構成する

  2. Linuxコマンドラインからソフトウェアをインストールする方法

  3. コマンド ラインから電子メールを送信するにはどうすればよいですか?

  1. Linuxコマンドラインから電子メールの添付ファイルを送信する4つの方法

  2. LinuxコマンドラインからのI/Oレポート

  3. LinuxコマンドラインからのGoogleドライブの使用

  1. Stratisを使用してコマンドラインからLinuxストレージを管理する

  2. Alpineを使用してコマンドラインからiCloud/GMailメールを使用する方法

  3. Linuxのコマンドラインからメールを送信するための9つのmail/mailxコマンドの例