SMTP Inside Out

Bagaimana e-mel internet berfungsi

Pernahkah anda tertanya-tanya apa yang berlaku apabila anda menekan butang Hantar dalam program e-mel anda? Mungkin tidak, saya rasa - selagi ia berfungsi. Inilah sebabnya mengapa anda perlu bertanya-tanya, walaupun. Sekiranya sesuatu yang tidak berfungsi, adalah baik untuk mengetahui apa yang tidak berfungsi. Biasanya, separuh penyelesaian itu.

Apabila anda menghantar e-mel SMTP masuk ke dalam permainan. SMTP adalah pendek untuk Simple Transfer Protocol seperti yang ditakrifkan dalam RFC 5321: Simple Transfer Protocol. Ceramah klien mel anda kepada pelayan SMTP menggunakan prosedur yang bersih dan mudah ini untuk mendapatkan e-mel dari satu tempat ke tempat lain.

The Flirt

Program e-mel anda menjadi klien SMTP , menghubungkan ke port 25 pelayan mel (biasanya port SMTP ) dan - kata EHLO . Komputer, pada akhirnya, hanya manusia dan apa yang penting ialah ia mahu menjadi sopan. Sebenarnya, ia tidak cuba untuk bersikap sopan tetapi menggunakan tambahan pada SMTP yang telah membawa dua perisa perintah HELO kemudian (perintah SMTP umumnya terdiri daripada empat huruf).

Dua Perisa HELO

EHLO, sebagai yang lebih baru membuat pelayan mengiklankan semua ciri tambahan (seperti pemberitahuan status penghantaran atau keupayaan untuk mengangkut mesej yang mengandungi selain daripada aksara ASCII yang selamat) yang menyokongnya.

Tidak setiap pelayan akan membenarkan ucapan ini, tetapi ia dikehendaki menerima HELO biasa yang secara semula jadi mengandaikan bahawa tiada ciri tambahan hadir. Kedua-dua hello arahan memerlukan klien untuk menentukan domainnya selepas ** LO, bagaimanapun. Dalam amalan, ini kelihatan seperti:

220 mail.domain.net ESMTP Server
HELO
501 HELO memerlukan alamat domain
HELO localhost
250 mail.domain.net Hello localhost [127.0.0.1], senang bertemu dengan anda

(Input saya adalah dalam huruf miring , output pelayan adalah hitam; garis bermula dengan 5 menunjukkan ralat .)

Pengirim

Selebihnya protokol itu benar-benar pantas sifat yang mudah. Jika anda mahu menghantar e-mel, anda bermula dengan kata kunci MAIL DARI:. Berikut ini adalah alamat e - mel pengirim, seperti yang dicadangkan oleh dari. Jangan lupa untuk meletakkan tanda kurung di sekitar alamat, walaupun (seperti ). Melanjutkan contoh kami, kami ada:

MAIL DARI:
250 sender@example.com ... Pengirim ok

Penerima

Selepas pelayan telah menerima alamat penghantar, pelanggan boleh memberikan alamat penerima. Perintah untuk tindakan ini, RCPT TO: sekali lagi agak sugestif. Saya mahu menghantar surat kepada saya sendiri :

RCPT TO: recipient@example.com
250 support@lifewireguide.com ... Penerima ok (akan beratur)

Bahawa pelayan yang beratur akan beratur hanya itu: ia akan menyelamatkan mel secara setempat dan menghantarnya bersama-sama dengan semua e-mel beratur yang lain dalam selang waktu (contohnya, setiap 30 minit). Tingkah laku ini bergantung kepada konfigurasi dan pelayan juga boleh menghantar mel dengan serta-merta.

Kami hampir selesai. Walau bagaimanapun, apa yang masih hilang adalah bahagian penting: mesej sebenar.

Mesej

Sekarang bahawa "sampul surat" selesai, data mesej e-mel seperti yang dapat diikuti. "Data" ini terdiri daripada badan e-mel serta bidang pengepala .

Perintah untuk memulakan keadaan yang menjadikan pelayan menerima mesej adalah DATA . Berikut ini adalah semua bidang pengepala mesej e-mel dan kemudian badan, kedua-duanya membentuk hanya satu blok besar teks (atau data). Untuk memberitahu pelayan bahawa input selesai titik pada baris dengan sendirinya digunakan (\ r \ n. \ R \ n). Jadi saya hantar mesej saya:

DATA
354 Masukkan mel, hujung dengan "." pada baris dengan sendirinya
Mesej-ID:
Tarikh: Sun, 17 Aug 1997 18:48:15 +0200
Dari: Heinz Tschabitscher
Kepada: Heinz Tschabitscher
Subjek: Untuk Peraduan Summarize-Proust

Off to Swan's World!
.
250 SAA19153 Mesej diterima untuk penghantaran

Ya, ini bermakna anda boleh menyatakan nama yang sama sekali berbeza dari yang e-mel masuk ke dalam medan Kepada:. Sebagai contoh, anda boleh menggunakan " Senarai penaja yang ditindas" .

Tamat

Anda kini boleh menghantar seberapa banyak e-mel yang anda ingin mengulangi langkah-langkah dari MAIL DARI: ke . . Jika anda selesai dengan itu, anda boleh keluar pelayan dengan arahan QUIT dan itu hanya apa yang kami lakukan:

QUIT
221 selamat tinggal

Bagaimana saya boleh melakukan ini?

Penyelesaian bukan remeh adalah telnet ke pelayan mel keluar anda (anda boleh mencari alamatnya dalam tetapan akaun klien e - mel anda ) pada port 25.

Cara yang lebih mudah ialah menggunakan applet Java ini , yang cuba meniru protokol SMTP dan membimbing anda melalui dialog.