BLOG

【Linux研修】おはじきの記録14

こんにちは、おはじきです。
みなさんメールを送信した事はありますか?
何を言ってるんだあるに決まってるだろうと思われる方も多いかと思いますが、
LINEやtwitterなどのSNSツールが急速に発達している昨今、サービスを利用するためにメールアドレスを取得して、登録に利用する事はあってもメールを打ち込んでやり取りする機会というのは大分減ってきています。
今の学生の中にはメールなんか使ったことない、という方がいても別におかしくはないという時代になりつつあります。
技術の進歩はめまぐるしいですね。

とはいえ業種にもよりますが仕事をする上でメールはまだまだ必須のツールです。また、メールに関してはLpicの試験範囲にもなっているので、一緒に知識を深めていきましょう。

電子メール

電子メールを送信する上では大きく分けてMUA(Mail User Agent)MTA(Message Transfer Agent)の2層に分かれて運用されています。
MUAとはメールの表示や作成、メールサーバへの送受信を担当するプログラムです。
MTAとはネットワーク上でメールを転送・配送するソフトウェアで、SMTPというプロトコルを用いてメールのやり取りを行うのでSMTPサーバーとも呼ばれます。
MTAはいくつかあり主要なところはpostfixやsendmail、eximなどがあります。
そして受信側でも2種類、受信のやり方が分かれてます。
POP(Post Office Protocol)IMAP(Internet Message Access Protocol)です。
この2つはMTAに蓄積されるメールに対するアプローチが違っています。
POPはMTAに蓄積されたメールを逐一ダウンロードして自分の端末で管理するという方法でメールを管理しています。
現状主にPOP3が利用されています。
それに対してIMAPは自分の端末で管理せずサーバーが管理してメールソフトを利用して閲覧するという方式です。
それぞれのメールサーバーが利用するポート番号は
SMTPは25番
POP3は110番
IMAPは143番

です。

このように様々なソフトウェアを利用してメールのやり取りは行われています。
図解してみるとこのような感じです。

今回はLinuxのCUI環境において、同じクライアント内でのユーザー同士でメールの送受信をやってみます。
メールの送信はsendmailコマンドを使います。

実際に画面で見てみましょう。

事前にmailboxという名前のユーザーを作成しておきました。
sendmail メールアドレスもしくはユーザー名
と入力すると次の行に進むのでそこで本文を入力します。
本文の入力が終わったら改行して最後の行に . だけ入力してEnterを押すと送信できます。
では実際にメールが受信できているか確認してみましょう。
/var/spool/mailディレクトリにユーザー名と同じ名前のファイルが勝手に作成されているのでその中にメールが格納されます。

ohajikiからmailbox宛に届いたメールですよというのが確認できますでしょうか。
デフォルトで用意されているsendmailコマンドを利用する方法を紹介しましたが、
sudo yum install -y mailx
mailコマンドをインストールするという形でもメールを送信できます。
書式: mail -s 題名 宛先メールアドレスもしくはユーザー名

メールの転送

エイリアスを設定する事によって、
ある宛先に届くはずのメールを違うメールアドレスに転送するという事もできます。
その場合は/etc/aliasesファイルに設定を記述します。
ファイル内にroot: ohajiki, mailboxと記述すると、
rootに届くメールがohajikiとmailboxの元に転送されるようになります。
この設定を記述するだけでは反映されないのでnewaliasesコマンドを使うことによってMTA側に反映させることができます。

また、メールの転送のやり方はもう一つあります。
ユーザーのホームディレクトリに.forwardという名前のファイルを作成しその中に転送したいユーザー名やメールアドレスをカンマ区切りで記述するとその記述したメールアドレス宛にメールが転送されるようになります。
因みに.forwardはファイルを記述して保存したらすぐ反映されます。

mailq

何らかのエラーでメールの送信に失敗し、送信待ち状態になってしまった場合はメールキューに保存されます。
メールキューの中身はmailqコマンドで確認できますのでこちらもテスト対策に覚えておきましょう。

最後に

メールサーバーの勉強を通して普段何気なく利用しているメールというものも裏では沢山のソフトウェアが常に動き続けることによって成り立っているという事に気づくことができました。

BLOGトップへ戻る