Bagaimana Mengambil Surat Melalui Karya Protokol Kantor Pos

A Behind the Scenes Lihatlah Mengambil Surat Melalui Protokol Kantor Pos

Protokol Kantor Pos (POP) yang digunakan untuk mengambil email dari server jauh adalah protokol yang sangat sederhana. Ini mendefinisikan fungsi dasar secara langsung dan mudah diterapkan. Tentu saja, itu juga mudah dimengerti.

Mari kita cari tahu apa yang terjadi di balik layar ketika program email Anda menjemput surat di akun POP. Pertama, perlu terhubung ke server.

Hai, Ini Aku

Biasanya, server POP mendengarkan port 110 untuk koneksi masuk. Setelah koneksi dari klien POP (program email Anda), mudah-mudahan akan merespon dengan + OK pop.philo.org siap atau yang serupa. + OK menunjukkan bahwa semuanya - OK. Setara negatifnya adalah -ERR , yang berarti ada sesuatu yang salah. Mungkin klien email Anda telah menunjukkan kepada Anda salah satu dari balasan server negatif ini.

Masuk

Sekarang server telah menyambut kami, kami harus masuk menggunakan nama pengguna kami (anggaplah nama pengguna adalah "peleton"; apa yang dikatakan server dicetak dalam cetak miring):

+ OK pop.philo.org siap
Peleton PENGGUNA

Karena pengguna dengan nama ini ada, server POP merespons dengan + OK dan mungkin beberapa omong kosong yang tidak benar-benar kita pedulikan. Seandainya tidak ada pengguna seperti itu di server, itu tentu saja akan membuat kita panik dengan -ERR pengguna yang tidak dikenal .

Untuk membuat otentikasi selesai, kami juga perlu memberikan kata sandi kami. Ini dilakukan dengan perintah "pass":

+ OK kirim kata sandi Anda
lulus noplato

Jika kami mengetikkan kata sandi dengan benar, server akan merespons dengan kata sandi besar + OK atau apa pun yang diprogram oleh server POP. Bagian penting lagi adalah + OK . Sayangnya, kata sandi juga bisa salah. Server mencatat ini dengan nama pengguna dan kata sandi ERR kering tidak cocok (seolah-olah Anda menggunakan nama pengguna Anda sebagai kata sandi Anda).

Jika semuanya berjalan baik-baik saja, kami terhubung ke server dan tahu siapa kami, jadi kami siap untuk mengintip email yang baru tiba.

Anda Punya Surat!

Setelah kami berhasil masuk ke akun POP kami di server, kami mungkin ingin mengetahui apakah ada email baru sama sekali dan mungkin berapa banyak.

Perintah yang digunakan untuk mengambil statistik kotak surat dasar ini adalah STAT .

Respons server yang mungkin adalah + OK 18 67042 . Dalam hal ini, tidak masalah apa yang mengikuti tanda + OK . Langsung berikut adalah jumlah pesan di kotak surat, kemudian, dipisahkan oleh spasi, muncul ukuran kotak surat di oktet (satu oktet adalah 8 bit).

STAT
+ OK 18 67042

Jika tidak ada surat, server merespons dengan + OK 0 0 . Karena ada 18 pesan baru di server, kami dapat mencantumkan ini menggunakan perintah LIST . Sebagai tanggapan, server mencantumkan pesan dalam format berikut:

DAFTAR
+ OK 18 pesan (67042 oktet)
1 2552
2 3297
...
18 3270
.

Pesan-pesan tersebut terdaftar satu per satu, masing-masing diikuti oleh ukurannya dalam oktet. Daftar ini diakhiri dengan periode pada baris dengan sendirinya.

Perintah LIST dapat mengambil jumlah pesan sebagai argumen opsional, DAFTAR 2 misalnya. Respons server terhadap permintaan ini adalah + OK 2 3297 , nomor pesan diikuti oleh ukuran pesan. Jika Anda mencoba untuk membuat daftar pesan yang tidak ada, seperti DAFTAR 23 , server tidak menunjukkan imajinasi dan mengatakan: -ERR tidak ada pesan seperti itu .

The Big Retrieve (Dan Hapus)

Sekarang setelah kami tahu berapa banyak pesan di akun kami dan seberapa besar pesan itu, akhirnya tiba saatnya untuk mengambilnya sehingga kami dapat membacanya juga.

Sekarang, setelah mengetahui apakah kami memiliki surat baru, datanglah hal yang nyata. Pesan-pesan diambil satu per satu dengan nomor pesan mereka sebagai argumen untuk perintah RETR .

Server merespons dengan + OK dan pesan apa adanya, dalam beberapa baris. Pesan diakhiri oleh periode pada baris dengan sendirinya. Sebagai contoh:

RETR 1
+ OK 2552 oktet
Blah!
.

Jika kami mencoba untuk mendapatkan pesan yang tidak ada, kami mendapatkan -ERR tidak ada pesan seperti itu .

Sekarang kita dapat menghapus pesan menggunakan perintah DELE . (Kami dapat, tentu saja, juga menghapus pesan tanpa mengambilnya jika itu adalah salah satu dari hari-hari itu).

Adalah baik untuk mengetahui bahwa server tidak akan membersihkan pesan dengan segera. Itu hanya ditandai untuk dihapus. Penghapusan yang sebenarnya hanya terjadi jika kita secara berkala mengakhiri koneksi ke server. Jadi tidak ada surel yang hilang jika koneksi tiba-tiba mati, misalnya.

Respons server terhadap perintah DELE adalah + OK pesan dihapus :

HAPUS 1
+ OK pesan 1 dihapus

Jika memang salah satu dari hari-hari itu dan kami telah menandai pesan untuk penghapusan yang tidak ingin dihapus, Anda dapat membatalkan penghapusan semua pesan dengan mengatur ulang tanda penghapusan. Perintah RSET mengembalikan kotak pesan ke kondisi sebelum kami masuk.

Server merespons dengan + OK dan mungkin jumlah pesan:

RSET
+ OK 18 pesan

Setelah kami mengambil dan menghapus semua pesan, saatnya untuk mengucapkan selamat tinggal menggunakan perintah QUIT . Ini akan membersihkan pesan-pesan yang ditandai untuk penghapusan dan menutup koneksi. Server merespons dengan + OK dan pesan perpisahan:

BERHENTI
+ Selamat tinggal, selamat tinggal

Ada kemungkinan server tidak dapat menghapus pesan. Maka akan merespon dengan kesalahan seperti -ERR pesan 2 tidak dihapus .