skillup

技術ブログ

サーバー・ネットワーク

メール送信に関して その1 おおまかな送受信の仕組み

投稿日:

php-fpmを変えてから大分動きがよくなりましたね・・サーバーのレスポンスがはやい・・

今回から数回に分けてメール送信の仕組みについて学習していこうと思います。

インフラ系の知識がやっぱり怪しいもんで・・・

メール送信のしくみ

パソコンでメールを送るとまずはメールサーバー(メールを格納しておくサーバー)に置かれることが一般的です。宛先にいきなり届くのではなくここにプールしておきます。

メール送信時に使われるプロトコルをSMTPとよび、メールをプールしておくサーバーをSMTPサーバーと呼びます。使用されるポート番号は587が一般的です。

SMTPサーバーから別のメールサーバーへ

SMTPサーバーに格納されたメールは別の配送先のメールサーバーへ運ばれます。(ちなみに配送先がどこかを知るためにはDNSサーバーにアクセスする必要があります。)このメール配送に使われるプロトコルもSMTPでポート番号は25になります。

メール受信のしくみ

メールを受信するさいのプロトコロルはPOPやIMAPが一般的です。前者は一般のメールクライアントなどでよく使われ、後者はGmailなどのクラウド型のサービスが該当します。POPのポート番号は110が一般的です。

エラー対策

一般的なメールの送受信では以下のようなトラブルが起こることが一般的です。

配送エラー

  • 配送先メールサーバーが応答しない
  • 宛先のメールアドレスが存在しない
  • 宛先のメールボックスが満杯で受け付けられない

上記のような場合には、元のメール送信者に送り返されます。

不正中継防止

メールサーバーはどこから送られた誰あてのメールでも中継するわけではありません。信頼できないクライアントから外部の宛先メールを受け付けて送信するとスパムの温床になります。そのようなことに備え、一般的には下記のような対策をすることが一般的です。

  • メール送信サーバーは信頼できるクライアントの接続であれば受け付ける
  • メール受信サーバーは自分が管理しているドメインあてのメールであれば受け付ける

※信頼できるの定義は今後説明予定。

内部の処理

メールの送信受信などはほとんどの方がソフトから行うと思いますが、コンソールから対話形式で処理を行う場合以下のような流れになります。

SMTP

  1. 接続
  2. 接続確認 EHLO ホスト名
  3. 送信者アドレス指定 MAIL FROM:メールアドレス
  4. 受信者アドレス指定 RECP TO:メールアドレス
  5. メッセージ送信 DATA+テキスト入力
  6. リセット RSET
  7. 終了 QUIT

POP

  1. 接続
  2. 認証 USER ユーザー名 PASS パスワード
  3. メッセージサイズ確認 LIST
  4. メッセージUID(ユニーク番号) UIDL番号
  5. メッセージ取り出し RETR メッセージ番号
  6. メッセージ一部取り出し TOP
  7. 削除 DELE
  8. リセット RSET
  9. 終了 QUIT

参考資料

SoftwareDesign 2015年9月号
http://www.itbook.info/network/smtp.html
http://www.itbook.info/network/pop.html

-サーバー・ネットワーク
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

nohup(sshログアウトしてもコマンドは続く)+ StickyBit(誰もで書き込み自由)

インフラ系の小ネタです Contents1 nohup2 Sticky Bit(スティッキービット) nohup sshでログインしている時に長時間かかるような処理を実行中、ログアウトするとそのコマン …

no image

zabbixアラートメール

以前、zabbixの基本設定についてこのエントリーでかきました。 今回はzabbixでの何らかの障害が発生した時に、アラートメールを送信したい場合について Contents1 ユーザーの登録&ユーザー …

no image

cakePHPでのサブディレクトリ(apache)

apache使用時、cakePHP2系をサブディレクトリで使いたいときの運用法に関して。通所通りですとファイルにアクセスできないので、URLのリライトをうまくしないといけません。下記に設定例をかきます …

no image

webサーバーがどのように動いているか(GETとPOST)

webがリクエストを受け取って画面に表示するまでの流れをおさらい。基本です。 Contents1 全体の流れ2 参考文献 全体の流れ 1 ユーザーがブラウザのURL欄にhttp://www.examp …

no image

基本的なSSHの設定

一般的なサーバーのSSH対策に関して。素のままでいるとあっという間に不正アクセスの餌食になります。 ちなみにサーバーとしてSSHの設定をいじる場合は/etc/ssh/sshd_confになります。ss …