Di dunia email, ada banyak aspek untuk pengujian, tetapi salah satu pengujian yang paling dasar yang dapat Anda lakukan adalah dengan telnet ke server SMTP tertentu. Pemeriksaan SMTP ini berguna dalam menentukan apakah masalah paling dasar ada atau tidak.
Apakah server aktif?
Apakah ada firewall yang memblokir komunikasi?
Apakah server email mengizinkan pengalihan untuk domain/alamat email tertentu?
Perintah SMTP apa yang didukung oleh server email?
Apakah server merespons dengan hostname yang benar?
Apakah koneksi berfungsi di luar perangkat lunak atau API pihak ketiga?
Semua pertanyaan ini dan lebih banyak lagi dapat dijawab dengan tes telnet yang sederhana.
Sebelum kita mulai, pastikan untuk membuka karya pendamping kami untuk pos ini: Kemana Pesan Bounce Dikirim? di tab baru sehingga Anda dapat membacanya setelah selesai dengan blog ini.
Perlu dicatat, perintah yang digunakan dalam contoh berikut (serta perintah tambahan) dibahas dalam bagian 4.1 dari RFC 2821.
Bagaimana cara Saya Mengirim Email Menggunakan Telnet?
Mengirim email melalui telnet dapat membantu Anda mengidentifikasi masalah kelayakan pengiriman dalam konfigurasi Anda saat ini.
Sebelum Anda mengirim email menggunakan telnet, pastikan telnet terinstal dan diaktifkan di komputer Anda. Sebagian besar komputer sudah terinstal dengan klien telnet. Untuk versi Windows yang tidak memilikinya, satu dapat diinstal dengan membuka bagian "Program dan Fitur" di panel kontrol dan memilih "Aktifkan atau nonaktifkan fitur Windows". Dengan jendela ini terbuka, pilih "klien telnet" dan kemudian klik OK.
Setelah klien telnet telah dipastikan terinstal di server, buka jendela terminal tempat Anda akan memasukkan perintah prompt Anda. Di Windows, gunakan Windows + R, ketik "cmd", dan tekan enter. Untuk pengguna Mac, Anda akan menemukan ikon terminal dengan membuka Finder dan mencari "Utilitas" di halaman Aplikasi, atau dengan memasukkan "terminal" di fungsi pencarian Launchpad.
Selanjutnya, kita perlu mencari server email untuk masuk. Untuk ini, kita akan membutuhkan catatan DNS MX untuk domain tertentu. Ini dapat ditemukan dengan perintah berikut (untuk contoh ini, port25.com akan digunakan, tetapi domain mana pun dapat disubstitusi):
Windows:
nslookup -type=mx port25.com
Jawaban non-otoritatif:
port25.com preferensi MX = 100, mail exchanger = mail.port25.com
Linux:
nslookup -type=mx port25.com
Jawaban non-otoritatif:
port25.com mail exchanger = 100 mail.port25.com.
SMTP menggunakan salah satu dari tiga port — 25, 465, atau 587, yang sering digunakan Microsoft Outlook. Jika relay SMTP Anda menggunakan port yang berbeda dari 25 sebagaimana ditunjukkan dalam contoh, Anda akan menggunakan port yang ditentukan oleh respons server mail exchange terhadap nslookup. Anda juga dapat memverifikasi port yang digunakan oleh SMTP Anda dengan menanyakan kepada administrator Anda atau dengan masuk ke server mail exchange dan meninjau protokol.
Selanjutnya kita perlu DNS PTR untuk IP yang akan kita gunakan. Pertama kita perlu tahu alamat IP apa yang dilihat internet bahwa kita memilikinya. Untuk menemukannya kita dapat menggunakan situs web seperti:
Dengan alamat IP jalankan perintah berikut, di mana A.B.C.D adalah alamat IP.
Windows:
nslookup -type=ptr A.B.C.D
Jawaban non-otoritatif:
D.C.B.A.in-addr.arpa name = server.example.com
Linux:
nslookup -type=ptr A.B.C.D
Jawaban non-otoritatif:
D.C.B.A.in-addr.arpa name = server.example.com
server.example.com hanyalah contoh, dan hasil Anda akan berbeda.
Jadi sekarang kita sudah memiliki catatan MX untuk port25.com dan PTR untuk IP yang akan kita gunakan, saatnya untuk masuk ke server SMTP. Untuk melakukannya, gunakan perintah berikut:
telnet mail.port25.com 25
Sesuatu yang mirip dengan berikut ini seharusnya sekarang ditampilkan:
Mencoba 69.63.149.30... Terhubung ke mail.port25.com (69.63.149.30). Karakter pelarian adalah '^]'. 220 mail.port25.com (PowerMTA(TM) v4.0) Layanan ESMTP siap
Jika Anda menerima pesan kesalahan seperti "tidak dapat terhubung" pada titik ini, baik nomor port benar atau server email menghadapi masalah.
Perintah pertama yang perlu kita keluarkan ke server email untuk penguji email SMTP kita adalah EHLO atau HELO. Ini adalah sapaan dasar yang memulai komunikasi antara klien telnet dan server SMTP. DNS PTR untuk alamat IP dari mana kita terhubung juga disampaikan sebelumnya.
EHLO server.example.com
Sesuatu yang mirip dengan berikut ini seharusnya dikembalikan:
250-mail.port25.com mengucapkan halo 250-STARTTLS 250-KODESTATUSTAMBAHAN 250-PIPELINING 250-CHUNKING 250-8BITMIME 250-XACK 250-XMRG 250-SIZE 54525952 250-VERP 250 DSN
Ini menunjukkan perintah SMTP yang diterima oleh server SMTP. Tidak semua server SMTP mendukung kumpulan perintah yang sama. Misalnya, yahoo hanya menunjukkan yang berikut:
250-8BITMIME 250-SIZE 41943040 250 PIPELINING
Dan aol hanya menunjukkan satu dengan:
250 DSN
Perintah berikut yang perlu kita keluarkan adalah perintah MAIL FROM. Ini menentukan alamat tempat pengembalian dikirim. Ini tidak sama dengan header dari, yang merupakan alamat email yang ditampilkan di klien email.
MAIL FROM: <support@port25.com> 250 2.1.0 MAIL ok
Pastikan Anda menggunakan nama domain yang sesuai dengan domain server email Anda. Misalnya, jika domain email Anda adalah anycompany.com, Anda ingin menggunakan you@anycompany.com alih-alih email luar seperti you@free-mail-provider.com. Variasi dalam nama domain dapat menyebabkan pesan kesalahan muncul.
Sekarang setelah perintah MAIL FROM telah dikirim, kita bisa mengirim perintah RCPT TO . Perintah ini memberi tahu server email SMTP kepada siapa pesan harus dikirim. Ini bisa sama atau berbeda dari header ke, yang merupakan alamat email yang ditampilkan di klien email.
RCPT TO: <support@port25.com> 250 2.1.5 <support@port25.com> ok
Periksa kembali alamat penerima Anda sebelum mengirim perintah RCPT TO — pesan kesalahan yang ditampilkan di sini dapat menunjukkan alamat email penerima yang salah eja atau diblokir.
Perintah terakhir yang dijalankan sebelum memulai tubuh pesan adalah perintah DATA . Perintah ini memberi tahu server email SMTP bahwa semua yang akan dikirim selanjutnya adalah tubuh pesan (yang juga berisi header).
DATA 354 kirim pesan
Penting untuk dicatat bahwa jika server email mendukung PIPELINING, sebagaimana yang dilakukan mail.port25.com, server email SMTP mungkin menunggu hingga perintah DATA dikeluarkan sebelum merespons perintah lain setelah EHLO/HELO. Dalam hal ini, masukkan perintah MAIL FROM, RCPT TO, dan DATA sebelum menunggu respons.
Sekarang setelah perintah DATA telah dikirim, kita dapat mulai mengirim konten pesan. Ini dimulai dengan berbagai header. Setidaknya sebuah pesan harus berisi header untuk, dari, subjek, dan tanggal. Header yang dimasukkan di sini akan ditampilkan kepada pengguna di klien email mereka.
Dari: "John Smith" <jsmith@port25.com> Kepada: "Jane Doe" <jdoe@port25.com> Subjek: pesan uji yang dikirim dari sesi telnet manual Tanggal: Rabu, 11 Mei 2011 16:19:57 -0400
Dengan header yang disetel, kita sekarang menambahkan satu baris kosong dengan pengembalian carriage/umpan garis (cukup tekan enter dua kali) dan kemudian kita mulai tubuh pesan sebenarnya.
Halo Dunia, Ini adalah pesan uji yang dikirim dari sesi telnet manual. Dengan tulus, administrator SMTP
Dengan pesan selesai, kita perlu memberi tahu server SMTP bahwa kita sudah selesai dengan pesan dan ingin server email SMTP menerimanya. Ini dilakukan dengan sebuah titik di sebuah baris sendiri. Jika selama penulisan pesan sebuah titik di sebuah baris sendiri diperlukan, Anda harus menempatkan 2 titik, yang pertama menghindari yang kedua.
. 250 2.6.0 pesan diterima
Jika Anda mendapatkan pesan kesalahan alih-alih notifikasi "diterima", catat detail relevan dan hubungi penyedia email Anda untuk bantuan lebih lanjut.
Terakhir, perintah QUIT dikirim untuk menutup koneksi:
QUIT 221 2.0.0 mail.port25.com mengucapkan selamat tinggal
Dengan itu server email kini telah menerima pesan untuk pengiriman, tes email telnet Anda selesai, dan itu seharusnya sudah ada di kotak masuk alamat RCPT TO!!!
Berikut adalah semua perintah tanpa gangguan:
telnet mail.port25.com 25 Mencoba 69.63.149.30... Terhubung ke mail.port25.com (69.63.149.30). Karakter pelarian adalah '^]'. 220 mail.port25.com (PowerMTA(TM) v4.0) Layanan ESMTP siap EHLO server.example.com 250-mail.port25.com mengucapkan halo 250-STARTTLS 250-KODESTATUSTAMBAHAN 250-PIPELINING 250-CHUNKING 250-8BITMIME 250-XACK 250-XMRG 250-SIZE 54525952 250-VERP 250 DSN MAIL FROM: <support@port25.com> 250 2.1.0 MAIL ok RCPT TO: <support@port25.com> 250 2.1.5 <support@port25.com> ok DATA 354 kirim pesan Dari: "John Smith" <jsmith@port25.com> Kepada: "Jane Doe" <jdoe@port25.com> Subjek: pesan uji yang dikirim dari sesi telnet manual Tanggal: Rabu, 11 Mei 2011 16:19:57 -0400 Halo Dunia, Ini adalah pesan uji yang dikirim dari sesi telnet manual. Dengan tulus, administrator SMTP . 250 2.6.0 pesan diterima QUIT 221 2.0.0 mail.port25.com mengucapkan selamat tinggal
Mengirim email menggunakan telnet memungkinkan Anda menguji kemampuan koneksi dengan cepat dan dengan biaya yang lebih rendah dibandingkan dengan peralatan atau perangkat lunak diagnostik yang canggih.
Bagaimana Cara Saya Menguji SMTP Menggunakan Otentikasi Telnet?
Sekarang setelah Anda tahu bagaimana memeriksa koneksi SMTP dengan telnet, kita akan membahas prosedur otentikasi. Otentikasi SMTP membantu mencegah sejumlah besar spam masuk ke kotak masuk pembaca, meskipun tidak semua server mail exchange membutuhkannya.
Perbedaan utama dalam protokol otentikasi modern adalah adanya pengkodean base64. Base64 mengubah data biner menjadi format teks ASCII yang diperlukan oleh server email untuk transmisi data yang berhasil. Ini adalah cara untuk mewakili kredensial login Anda — beberapa kombinasi teks — dalam format numerik yang dapat dipahami komputer.
Anda dapat menghasilkan base64 Anda menggunakan perangkat lunak atau alat online gratis. Setelah Anda menyampaikan informasi ini ke server email, server membandingkan data ini dengan catatannya untuk menentukan otentikasi.
Untuk menguji otentikasi SMTP melalui telnet, selesaikan langkah-langkah berikut:
Buka terminal dan sambungkan dengan server email menggunakan nama server telnet dan perintah akses — mail.port25.com dalam contoh di atas.
Sapa server dengan EHLO atau HELO, masukkan AUTH LOGIN, dan tunggu respons dari komputer.
Masukkan nama pengguna yang telah dienkripsi base64 dan biarkan server menjawab.
Masukkan kata sandi yang dienkripsi base64, dan Anda seharusnya menerima respons seperti "otentikasi berhasil."
Teruskan dengan MAIL FROM, RCPT TO, DATA, dan QUIT untuk mengirim email Anda yang telah diautentikasi.