私が読んだ多くのfetchmailチュートリアルでは、メールアカウントのパスワードをクリアテキストで設定ファイルに入れるのが安全だと言っています。しかし、私はレイヤーを介したセキュリティを好みます[***愚かな例:*端末が起動していて、そのような電子メールの愚かさを疑う人がスライドして、単に「grep -i pass〜/。*」と入力した場合、おっと、すべて私のベースはそれらに属しています!特に私の電子メールプロバイダーがopenidを使用している場合(または私の銀行に同じパスワードを使用するのに十分愚かです)] **。
これで、(sendmailではなく)msmtpを使用して、OSXキーチェーンを使用して認証できます。キーチェーンを使用できる(または少なくともMD5パスワードを使用できる)無料/オープンソースの電子メール「グラバー」はありますか?
POP3経由でメールを取得するだけで十分な場合は、優れた mpop をご覧ください。これはmsmtpと同じ作成者のものであり、認証資格情報を保存するためのOSXキーチェーンもサポートしています。
IMAP4の場合、非常に優れた OfflineIMAP を使用し、 William Snow Orvis 'Pythonフック を使用してOSXキーチェーンに接続できます。
私は個人的にfetchmailよりもこれらのツールを好みます(ダウンロード速度、機能セット、構成などのため)が、マイレージは異なる場合があります。
単純なユーティリティの観点からは、はい、キーチェーンを使用できます。追加の注意事項があるsecurity(1)
のマニュアルページ全体を読むことを強くお勧めします。
キーチェーンプログラムまたはコマンドラインを使用して、パスワードを入力できます。
_# WARNING: exposes password in ps(1), history(1), etc.
$ security add-internet-password -a $USER -s pop3.example.com -w 'Mellon!'
_
これは次の方法で抽出できます。
_# Note: by default, first use will Prompt
$ security find-internet-password -s pop3.example.com -a $USER -g
_
常に許可の場合、security(1)
はそれ以上のプロンプトなしでこれらの資格情報をプルできます。これは、システムにリスクをもたらす可能性があります。ただし、起動する前に常にパスワードの入力を求めるように選択することもできます。
最後に、これを使用して、使用するパスワードを設定するスプリングボードスクリプトでfetchmail
呼び出しをラップできます。
_user=$USER
server=pop3.example.com
# WARNING: insecure tmpfile creation and usage
# As [DAM][1] mentions, see mkstemp(3)
tmpfile=/tmp/fetchmailrc.$$
password=$(security find-internet-password -s $server -a $USER -g 2>&1 \
| Perl -ne '/password: "(\S*)"/ and print $1')
# create temporary fetchmailrc and pass to fetchmail, etc...
cat <<EoF > $tmpfile
poll $server with proto POP3 and options no dns
user $user with pass '$password' is $user here
options keep mda '/usr/bin/procmail -d %T'
EoF
fetchmail -d -f $tmpfile
rm -f $tmpfile
_
これは、パスワードを使用して明白なファイルを配置しないというあなたの述べた目標を達成しますが、私はセキュリティリスクに注意してくださいこの構成でまだ存在していることを考慮してください。
標準のimap/smtp/pop3を使用するには、プレーンテキストのパスワードが必要です。したがって、それをローカルに保存する場合は、リバーシブルの形式にする必要があります。これは、キーチェーンを使用するための良いニュースではありません。ただし、メールサーバーがサポートしている場合は、X.509証明書とSSLを使用して認証できます。その証明書は、パスワードの有無にかかわらず、Mac OSXキーチェーンに保存できます。
私はMacユーザーではないので、答えられないのは、実際にこのセットアップをサポートしているソフトウェアがあるかどうかです。さらに、X509認証をサポートするサーバーも必要です。
@メディナ、
「tmpfile =/tmp/fetchmailrc。$$」の代わりに、利用可能な場合はmktemp(1)を使用することをお勧めします。
キーチェーンでプレーンテキストのパスワードを解除できる場合は可能ですが、サーバーが独自の形式(通常はプレーンテキスト)でパスワードを必要とするため、ローカルでMD5パスワードを取得することはできません。