数日前、私の端末ウィンドウにこのメッセージが表示されました。
どういう意味ですか?私は今まで見たことがない。
それはxCodeボットからのメッセージでした。
助けてくれてありがとう。
おそらくそれはあなたのシステムからのメッセージです。
端末に入力します。
man mail
そして、あなたはどうやってあなたのシステムからこのメッセージを受け取ることができるかを見てください。
Terminalを起動するたびに、「You have mail」という問題が発生していました。
私が発見したのはこれです。
私がインストールしたもの(完全にはわからないが、おそらくAlfred Workflowに関連したスクリプトや何かが推測される)が、OS XシステムにTerminal bash通知の表示を開始するための変更を加えた。それ以前は、Wordpressがローカルメールシステムを使ってメッセージを送信しようとしていたようです。無効な受信者アドレスを持っているため、メッセージがバウンスしました。返送されたメッセージはローカルシステムのメール受信箱に入りました。それでTerminal(bash)は私に "あなたはメールを持っています"と通知していました。
あなたは単にコマンドを使用してメールにアクセスすることができます
mail
これでMailが起動し、そこに保存されているメッセージの一覧がすぐに表示されます。最初のメッセージの内容を見たい場合は、
t
これにより、最初のメッセージの内容が完全に表示されます。 down-arrow
キーを押して、メッセージをスクロールして全部を表示する必要があります。
メッセージの最後にジャンプしたい場合は、
spacebar
メッセージの表示を中止したい場合は、
q
キュー内の次のメッセージを表示するには
n
...複数のメッセージがあるとします。
注:mail ?
コマンドプロンプトでこれらのコマンドを使用する必要があります。あなたがメッセージを閲覧している間は、それらは機能しません。メッセージを見ながらn
を押すと、正規表現に関連したエラーメッセージが表示されます。そのため、メッセージの表示中にq
を押してメッセージを終了するか、spacebar
を押してメッセージの末尾にジャンプし、次に?
プロンプトでn
を押します。
この方法でメッセージの内容を表示すると、メッセージを送信しようとした内容を特定するのに役立ちます。
?
プロンプトで番号を入力するだけで特定のメッセージを表示することもできます。例えば3
は3番目のメッセージの内容を表示します(そこにたくさんのメッセージがある場合)。
コマンドを使用する(?
コマンドプロンプトで)
d [message number]
見終わったら各メッセージを削除します。たとえば、d 2
はメッセージ番号2を削除します。または、d 1 2 5 7
などのメッセージのリストを削除することもできます。メールに表示されるメッセージの一覧にメッセージ番号が表示されます。
すべてのメッセージを削除するには、メールプロンプト(?
)からコマンドd *
を使用します。
この記事へのコメントによると、メールを終了するにはq
を使用する必要があります。これにより、変更も保存されます。
メールを1つの出力にまとめて表示したい場合は、bashプロンプトでこのコマンドを使用します(つまり、メール内からではなく、通常のコマンドプロンプトから)。
cat /var/mail/<username>
そして、あなたがすべての電子メールを一度に削除したい場合は、このコマンドを使用してください
Sudo rm /var/mail/<username>
私の特定のケースでは、たくさんのメッセージがありました。それが返送されたメッセージであるように見えます。ローカルのWordpressインストールによって送信されました。ユーザー "Admin"(私)がパスワードを変更したときの通知です。そこに2つの追加メッセージがあります。どちらも同じ事件のようです。
私が知らない、そしてあなたにも答えることができないのは、なぜ私がターミナルを開くたびにこのメール通知を見始めたのかということです。このメールは数ヶ月前に作成されたものですが、私はここ数週間でこの「あなたはメールを持っています」というメッセージに気付いただけです。これは私がAlfredにインストールしたワークフロー、およびTerminal bashを使用して通知を提供するワークフローの結果か、それともこれらの流れに沿った何かが原因であると考えられます。
メッセージの出所を特定することに興味がなく、単にそれらを取り除きたいのであれば、mail
コマンドを使わずにそうするほうが簡単かもしれません(多少手間がかかります)。他の少数の人々が指摘したように、代わりにこのコマンドを使うことができます。
Sudo rm /var/mail/YOURUSERNAME
mail
を使う手間がいらない場合は、次のようにしてメールを読むことができます。
cat /var/mail/<username>
でメールを削除
Sudo rm /var/mail/<username>
これは、あなたが作成したプロセスやスクリプトがあなたのローカルマシン上のアカウントにメールを送信していることを意味します(例えば、localhostアプリケーション上で走っているメールサーバー)。
これらのコマンドでこのメールを管理してください。
t <message list> type messages
n goto and type next message
e <message list> edit messages
f <message list> give head lines of messages
d <message list> delete messages
s <message list> file append messages to file
u <message list> undelete messages
R <message list> reply to message senders
r <message list> reply to message senders and all recipients
pre <message list> make messages go back to /var/mail
m <user list> mail to specific users
q quit, saving unresolved messages in mbox
x quit, do not remove system mailbox
h print out active message headers
! Shell escape
cd [directory] chdir to directory or home if none given
は、整数、同じ範囲、またはスペースで区切られたユーザー名で構成されます。省略した場合、Mailは最後に入力されたメッセージを使用します。
Aは、スペースで区切られたユーザー名または別名で構成されています。エイリアスは、ホームディレクトリの.mailrcで定義されています。
Inspiredlife 説明 として、mail
コマンドを使って起こっていることを理解することができます。
(私のように)無関係なメッセージや自動生成されたメッセージを1つずつ削除したくない場合は、以下のコマンドを実行してすべてのメッセージを削除してください。
echo -n > /var/mail/yourusername