GNU/Linux >> Belajar Linux >  >> Linux

Memahami Cara Kerja Sistem Email

E-mail telah menjadi alat komunikasi yang sangat populer. Pemahaman yang kuat tentang konsep sistem email membantu administrator sistem untuk menyelidiki berbagai jenis masalah dengan sistem email.

1. Bagaimana perjalanan email

Diagram di bawah ini menunjukkan urutan kejadian umum yang terjadi saat Alice menulis pesan menggunakan agen pengguna email (MUA). Dia mengetik atau memilih dari buku alamat, alamat email korespondennya. Kemudian dia mengirim email.

  1. MUA Alice memformat pesan dalam format email Internet dan menggunakan Simple Mail Transfer Protocol (SMTP) untuk mengirim pesan ke agen transfer surat lokal (MTA), dalam hal ini, smtp.a.org, dijalankan oleh Penyedia Layanan Internet (ISP) Alice.
  2. MTA melihat alamat tujuan yang disediakan dalam protokol SMTP (bukan dari header pesan), dalam hal ini [email protected]. Alamat email Internet adalah string dalam bentuk [email protected], yang dikenal sebagai Alamat Domain yang Memenuhi Syarat Sepenuhnya (FQDA). Bagian sebelum tanda @ adalah bagian lokal dari alamat, seringkali nama pengguna penerima, dan bagian setelah tanda @ adalah nama domain. MTA mencari nama domain ini di Sistem Nama Domain untuk menemukan server pertukaran email yang menerima pesan untuk domain tersebut.
  3. Server DNS untuk domain b.org, ns.b.org, merespons dengan catatan MX yang mencantumkan server pertukaran surat untuk domain tersebut, dalam hal ini mx.b.org, server yang dijalankan oleh ISP Bob.
  4. smtp.a.org mengirim pesan ke mx.b.org menggunakan SMTP, yang mengirimkannya ke kotak surat bob pengguna.
  5. Bob menekan tombol “dapatkan email” di MUA-nya, yang mengambil pesan menggunakan Post Office Protocol (POP3) atau menggunakan Internet Message Access Protocol (IMAP).

2. Format Standar Email

Pesan terdiri dari bidang header dan, opsional, badan. Setiap bidang header dapat dilihat sebagai satu baris logis karakter ASCII, yang terdiri dari nama bidang dan badan bidang. Bagian badan bidang dapat dibagi menjadi beberapa lines .Struktur bidang header dapat dilihat sebagai terdiri dari nama bidang diikuti oleh titik dua (“: “), diikuti oleh field-body, dan diakhiri dengan carriage-return/line-feed.

Nama bidang harus terdiri dari karakter ASCII yang dapat dicetak (yaitu, karakter yang memiliki nilai antara 33. dan 126.,desimal, kecuali titik dua). Badan bidang dapat berisi karakter ASCII apa pun, kecuali CR atau LF. (Sementara CR dan/atau LF mungkin ada dalam teks yang sebenarnya, mereka dihilangkan dengan tindakan membuka bidang.)

Minimum yang diperlukan

Date: 26 Aug 76 1429 EDT       Date: 26 Aug 76 1429 EDT
From: [email protected]    or   From: [email protected]
Bcc:                             To: [email protected]

Perhatikan bahwa bidang “Bcc” mungkin kosong, sedangkan bidang “Kepada” harus memiliki setidaknya satu alamat.

Beberapa bidang umum

1. Diterima

Ini adalah bidang jejak. Ini berguna untuk pengembang dan dukungan. Salinan bidang ini ditambahkan oleh setiap layanan transportasi yang menyampaikan pesan. Informasi di lapangan bisa sangat berguna untuk menelusuri masalah transportasi.

Received: from agminet03.b.org (agminet03.b.org [192.168.10.1])
	by gw2.b.org(Switch-3.2.0/Switch-3.2.0) with ESMTP id m3A7ZtIj030617
	for [[email protected]]; Thu, 10 Apr 2008 01:35:55 -0600

2. Dari

"Dari" adalah bidang pencetus. Bidang ini berisi identitas orang yang ingin pesan ini dikirim. Proses pembuatan pesan harus menetapkan bidang ini sebagai satu alamat mesin yang diautentikasi secara default, yang menunjukkan AGEN (orang, sistem, atau proses) yang memasukkan pesan. Jika ini tidak dilakukan, bidang "Pengirim" HARUS ada. Jika bidang "Dari" adalah default dengan cara ini, bidang "Pengirim" adalah opsional dan berlebihan dengan bidang "Dari". Dalam semua kasus, alamat di bidang “Dari” harus dapat digunakan oleh mesin (addr-specs) dan tidak boleh berisi daftar nama (grup).

From: Alice [[email protected]]

3. Ke

"Ke" adalah bidang penerima. Bidang ini berisi identitas penerima utama pesan.

To: [[email protected]]

4. ID-Pesan

“MESSAGE-ID ” adalah bidang referensi. Bidang ini berisi pengidentifikasi unik (unit alamat bagian lokal) yang merujuk ke versi INI dari pesan INI. Keunikan pengidentifikasi pesan dijamin oleh host yang membuatnya. Pengenal ini dimaksudkan agar dapat dibaca mesin dan tidak selalu berarti bagi manusia. Pengidentifikasi pesan berkaitan dengan tepat satu instantiasi dari pesan tertentu; revisi berikutnya pada pesan tersebut harus masing-masing menerima pengidentifikasi pesan baru.

Message-ID: [[email protected]]

5. Subjek

Ini dimaksudkan untuk memberikan ringkasan, atau menunjukkan sifat pesan.

Subject: Hello

Tubuh

Bidang header Content-Type dapat digunakan untuk menentukan jenis dan subtipe data dalam isi pesan dan untuk sepenuhnya menentukan representasi asli (pengkodean) dari data tersebut.

1. Teks

Tubuh hanyalah urutan baris yang berisi karakter ASCII. Ini dipisahkan dari header dengan garis nol (yaitu, garis tanpa apa pun sebelum CRLF).

Content-Type: text/plain

2. MIME – Ekstensi Surat Internet Serbaguna

MIME telah dirancang dengan cermat sebagai mekanisme yang dapat diperluas. Ini menjelaskan bidang header Versi MIME, bidang header Tipe Konten, bidang header Content-Transfer-Encoding. Misalnya:

Content-Type: multipart/mixed;
boundary="------------040406000905020906030306"
--_77c1a01c-9699-4678-a620-eccfaf27c4c8_
Content-Type: text/plain
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="file.txt"

3. SMTP – Protokol Transfer Surat Sederhana

Simple Mail Transfer Protocol (SMTP), protokol yang digunakan untuk bertukar email antar titik di Internet. Tujuan Simple Mail Transfer Protocol (SMTP) adalah untuk mentransfer email dengan andal dan efisien.

model SMTP

Desain SMTP didasarkan pada model komunikasi berikut:sebagai hasil dari permintaan email pengguna, SMTP pengirim membuat saluran transmisi dua arah ke SMTP penerima. Penerima-SMTP dapat berupa tujuan akhir atau perantara. Perintah SMTP dihasilkan oleh SMTP pengirim dan dikirim ke SMTP penerima. Balasan SMTP dikirim dari SMTP penerima ke SMTP pengirim sebagai tanggapan atas perintah.

Contoh transaksi email SMTP

Ada tiga langkah untuk transaksi email SMTP. Transaksi dimulai dengan perintah MAIL yang memberikan identifikasi pengirim. Serangkaian satu atau lebih perintah RCPT berikut memberikan informasi penerima. Kemudian perintah DATA memberikan data email. Dan terakhir, indikator akhir data email mengkonfirmasi transaksi.

C: #telnet smtp.a.org 25
C: Trying 192.168.**.**...
C: Connected to bigip-adc-mail-10g.a.org (192.168.**.**).
Escape character is '^]'.
C: 220 server ready. Unauthorized Access Prohibited.
S: EHLO test1.a.org
S: 250-bigip-adc-mail-10g.a.org Hello test1.a.org, pleased to meet you
S: 250-8BITMIME
S: 250-SIZE 15728640
S: 250-DSN
S: 250-ENHANCEDSTATUSCODES
S: 250-STARTTLS
S: 250-XAUTH
S: 250 HELP
C: MAIL FROM:
S: 250 2.1.0 Sender OK
C: RCPT TO:
S: 250 2.1.5 Recipient ok
C: DATA
S: 354 Enter mail, end with "." on a line by itself
C: Subject: email title ..content
C: ....
C: . 

S: 250 2.6.0 Message accepted for delivery
C: quit
S: 221 2.0.0  bigip-adc-mail-10g.a.org Closing connection
S: Connection closed by foreign host.

4. POP3 – Protokol Kantor Pos versi 3

POP3 digunakan untuk membaca email. Dengan POP3, email Anda disimpan untuk Anda dalam satu kotak surat di server. Saat Anda membaca email Anda, email tersebut langsung diunduh ke komputer Anda dan, kecuali jika diatur sebelumnya, tidak lagi disimpan di server.

Awalnya, host server memulai layanan POP3 dengan mendengarkan pada port TCP 110. Ketika klien ingin menggunakan layanan tersebut, ia membuat koneksi TCP dengan server. Ketika koneksi dibuat, server POP3 mengirim salam. Klien dan server POP3 kemudian bertukar perintah dan tanggapan (masing-masing) hingga koneksi ditutup atau dibatalkan.

Protokol POP3 digunakan untuk mengizinkan workstation mengambil email yang disimpan server untuknya.

Contoh Sesi POP3

S: [wait for connection on TCP port 110]
C: [open connection]
S:    +OK POP3 server ready [[email protected]]
C: USER Alice
S: +OK Alice is a real hoopy frood
C: PASS secret
S: +OK Alice's maildrop has 2 messages (320 octets)
C:    STAT
S:    +OK 2 320
C:    LIST
S:    +OK 2 messages (320 octets)
S:    1 120
S:    2 200
S:    .
C:    RETR 1
S:    +OK 120 octets
S:    [the POP3 server sends message 1]
S:    .
C:    DELE 1
S:    +OK message 1 deleted
C:    RETR 2
S:    +OK 200 octets
S:    [the POP3 server sends message 2]
S:    .
C:    DELE 2
S:    +OK message 2 deleted
C:    QUIT
S:    +OK dewey POP3 server signing off (maildrop empty)
C:  [close connection]
S:  [wait for next connection]

5. IMAP – Protokol Akses Pesan Internet

IMAP (Internet Message Access Protocol) adalah protokol standar untuk mengakses email dari server lokal Anda. IMAP adalah protokol klien/server di mana e-mail diterima dan disimpan untuk Anda oleh server Internet Anda. Anda (atau klien email Anda) hanya dapat melihat judul dan pengirim surat dan kemudian memutuskan apakah akan mengunduh surat tersebut. Anda juga dapat membuat dan memanipulasi beberapa folder atau kotak surat di server, menghapus pesan, atau mencari bagian tertentu atau seluruh catatan. IMAP memerlukan akses terus-menerus ke server selama Anda bekerja dengan email Anda.

IMAP dapat dianggap sebagai server file jarak jauh. POP3 dapat dianggap sebagai “menyimpan dan meneruskan ” layanan.

perbandingan singkat POP3 dan IMAP

Keunggulan protokol POP3

  • Protokol yang lebih sederhana; lebih mudah diterapkan.
  • Lebih banyak perangkat lunak klien yang tersedia saat ini.

Keunggulan protokol IMAP

  • Dapat memanipulasi tanda status pesan persisten.
  • Dapat menyimpan pesan serta mengambilnya.
  • Dapat mengakses dan mengelola beberapa kotak surat.
  • Dapat mendukung pembaruan serentak dan akses ke kotak surat bersama.
  • Cocok untuk mengakses data non-email; misalnya, NetNews, dokumen.
  • Dapat juga menggunakan paradigma offline, untuk waktu koneksi dan penggunaan disk yang minimum.
  • Protokol pendamping yang ditentukan untuk manajemen konfigurasi pengguna (IMSP).
  • Konstruksi untuk memungkinkan pengoptimalan kinerja online, terutama melalui tautan berkecepatan rendah.

Contoh koneksi IMAP4

Berikut ini adalah transkrip koneksi IMAP4rev1. Garis panjang dalam contoh ini rusak untuk kejelasan editorial.

C: telnet imap.a.org 143
S: Trying 192.168.***.***...
S: Connected to imap.a.org (192.168.***.***).
Escape character is '^]'.
S:   * OK IMAP4rev1 Service Ready
C:   a001 login mrc secret
S:   a001 OK LOGIN completed
C:   a002 select inbox
S:   * 18 EXISTS
S:   * FLAGS (\Answered \Flagged \Deleted \Seen \Draft)
S:   * 2 RECENT
S:   * OK [UNSEEN 17] Message 17 is the first unseen message
S:   * OK [UIDVALIDITY 3857529045] UIDs valid

S:   a002 OK [READ-WRITE] SELECT completed
C:   a003 fetch 12 full
S:   * 12 FETCH (FLAGS (\Seen) INTERNALDATE "17-Jul-1996 02:44:25 -0700"
      RFC822.SIZE 4286 ENVELOPE ("Wed, 17 Jul 1996 02:23:25 -0700 (PDT)"
      "IMAP4rev1 WG mtg summary and minutes"
      (("Terry Gray" NIL "gray" "cac.washington.edu"))
      (("Terry Gray" NIL "gray" "cac.washington.edu"))
      (("Terry Gray" NIL "gray" "cac.washington.edu"))
      ((NIL NIL "imap" "cac.washington.edu"))
      ((NIL NIL "minutes" "CNRI.Reston.VA.US")
      ("John Klensin" NIL "KLENSIN" "INFOODS.MIT.EDU")) NIL NIL
      "[[email protected]]")
       BODY ("TEXT" "PLAIN" ("CHARSET" "US-ASCII") NIL NIL "7BIT" 3028 92))
S:    a003 OK FETCH completed
C:    a004 fetch 12 body[header]
S:    * 12 FETCH (BODY[HEADER] {350}
S:    Date: Wed, 17 Jul 1996 02:23:25 -0700 (PDT)
S:    From: Terry Gray [[email protected]]
S:    Subject: IMAP4rev1 WG mtg summary and minutes
S:    To: [email protected]
S:    cc: [email protected], John Klensin [[email protected]]
S:    Message-Id: [[email protected]]
S:    MIME-Version: 1.0
S:    Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
S:
S:    )
S:    a004 OK FETCH completed
C:    a005 store 12 +flags \deleted
S:    * 12 FETCH (FLAGS (\Seen \Deleted))
S:    a005 OK +FLAGS completed
C:    a006 logout
S:    * BYE IMAP4rev1 server terminating connection
S:    a006 OK LOGOUT completed


Linux
  1. Cara Mengubah Nama Host di Linux

  2. Bagaimana Cara Menyesuaikan Lokal Sistem?

  3. Memahami Template rsyslog

  1. Cara kerja Hexdump

  2. Bagaimana cara mencetak pesan ke stderr di Go?

  3. Cara memeriksa apakah proxy Socks5 berfungsi

  1. Bagaimana cara memperbarui AlmaLinux

  2. Cara Memeriksa Versi Linux

  3. Bagaimana mengurutkan keluaran ini 1,10,11..2