
Di dunia email, ada banyak aspek untuk pengujian, tetapi salah satu tes paling dasar yang bisa Anda lakukan adalah dengan sederhana telnet ke server SMTP tertentu. Pemeriksaan SMTP ini berguna untuk menentukan apakah masalah paling dasar ada atau tidak.
Di dunia email, ada banyak aspek untuk pengujian, tetapi salah satu pengujian paling dasar yang dapat Anda lakukan adalah dengan sederhana telnet ke server SMTP tertentu. Pemeriksaan SMTP ini berguna untuk menentukan apakah masalah paling dasar ada atau tidak.
Apakah server aktif?
Apakah ada firewall yang memblokir komunikasi?
Apakah server email memungkinkan relai dari domain/alamat email tertentu?
Perintah SMTP apa yang didukung oleh server email?
Apakah server merespons dengan nama host yang benar?
Apakah koneksi bekerja di luar perangkat lunak pihak ketiga atau APIs?
Semua pertanyaan ini dan lebih banyak lagi dapat dijawab dengan tes telnet sederhana.
Sebelum kita mulai, pastikan untuk membuka artikel pendamping untuk posting ini: Ke Mana Pesan Bounce Dikirim? di tab baru sehingga Anda dapat membacanya setelah selesai dengan blog ini.
Sebagai catatan, perintah yang digunakan dalam contoh berikut (serta perintah tambahan) dibahas dalam bagian 4.1 dari RFC 2821.
Bagaimana Cara Mengirim Email Menggunakan Telnet?
Mengirim email melalui telnet dapat membantu Anda mengidentifikasi masalah pengiriman dalam konfigurasi Anda saat ini.
Sebelum Anda mengirim email menggunakan telnet, pastikan telnet sudah terpasang dan diaktifkan di komputer Anda. Sebagian besar komputer telah dilengkapi dengan klien telnet yang sudah terinstal. Untuk versi Windows yang tidak, dan dapat diinstal dengan membuka bagian "Programs and Features" di panel kontrol dan memilih "Turn Windows features on or off". Dengan jendela ini terbuka, pilih "telnet client" lalu klik OK.
Setelah klien telnet diverifikasi sudah terpasang di server, buka jendela terminal di mana Anda akan memasukkan perintah prompt. Di Windows, gunakan Windows + R, ketik "cmd", dan tekan enter. Untuk pengguna Mac, Anda akan menemukan ikon terminal dengan membuka Finder dan mencari "Utilities" di halaman Applications, atau dengan memasukkan "terminal" di fungsi pencarian Launchpad.
Selanjutnya, kita perlu menemukan server email untuk masuk. Untuk ini, kita perlu catatan DNS MX untuk domain tertentu. Ini bisa ditemukan dengan perintah berikut (untuk contoh ini, port25.com akan digunakan, tetapi domain mana pun dapat disubstitusi):
Windows:
nslookup -type=mx port25.com
Jawaban tidak otoritatif:
port25.com MX preference = 100, mail exchanger = mail.port25.com
Linux:
nslookup -type=mx port25.com
Jawaban tidak otoritatif:
port25.com mail exchanger = 100 mail.port25.com.
SMTP menggunakan salah satu dari tiga port — 25, 465, atau 587, yang biasa digunakan oleh Microsoft Outlook. Untuk konfigurasi dan optimasi server email lanjutan, lihat panduan kami di PowerMTA configuration tips. Jika relay SMTP Anda menggunakan port yang berbeda dari 25 seperti yang ditunjukkan dalam contoh ini, Anda akan menggunakan port yang ditentukan oleh respons server exchange email ke nslookup. Anda juga dapat memverifikasi port yang reli SMTP Anda dengan menanyakan administrator Anda atau masuk ke server exchange email dan meninjau protokol.
Selanjutnya kita membutuhkan DNS PTR untuk IP yang akan kita gunakan. Pertama kita perlu mengetahui alamat IP yang dilihat internet sebagai milik kita. Untuk menemukan itu kita bisa menggunakan situs web seperti:
Dengan alamat IP jalankan perintah berikut, di mana A.B.C.D adalah alamat IP tersebut.
Windows:
nslookup -type=ptr A.B.C.D
Jawaban tidak otoritatif:
D.C.B.A.in-addr.arpa name = server.example.com
Linux:
nslookup -type=ptr A.B.C.D
Jawaban tidak otoritatif:
D.C.B.A.in-addr.arpa name = server.example.com
server.example.com hanyalah sebuah contoh, dan hasil Anda akan berbeda.
Jadi sekarang setelah kita 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 akan ditampilkan:
Trying 69.63.149.30... Connected to mail.port25.com (69.63.149.30). Escape character is '^]'. 220 mail.port25.com (PowerMTA(TM) v4.0) ESMTP service ready
Jika Anda menerima pesan kesalahan seperti "cannot connect" pada titik ini, baik nomor port yang 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 salam dasar yang memulai komunikasi antara klien telnet dan server SMTP. Juga diteruskan adalah DNS PTR untuk alamat IP dari mana kita terhubung seperti yang ditentukan sebelumnya.
EHLO server.example.com
Sesuatu yang mirip dengan berikut ini harus dikembalikan:
250-mail.port25.com says hello 250-STARTTLS 250-ENHANCEDSTATUSCODES 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 set perintah yang sama. Misalnya, yahoo hanya menunjukkan yang berikut ini:
250-8BITMIME 250-SIZE 41943040 250 PIPELINING
Dan aol hanya menunjukkan satu dengan:
250 DSN
Perintah berikutnya yang perlu kita keluarkan adalah perintah MAIL FROM. Ini menentukan alamat ke mana pantulan akan dikirim. Ini bukan sama dengan dari header, 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 daripada email luar seperti you@free-mail-provider.com. Variasi dalam nama domain dapat menyebabkan pesan kesalahan muncul.
Setelah perintah MAIL FROM dikirim, kita bisa mengirim perintah RCPT TO . Perintah ini memberi tahu server email SMTP kepada siapa pesan harus dikirim. Ini bisa sama atau berbeda dengan ke header, 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 penerima email yang salah eja atau diblokir.
Perintah terakhir yang dijalankan sebelum memulai tubuh pesan adalah perintah DATA . Perintah ini memberi tahu server email SMTP bahwa segala sesuatu yang akan dikirim adalah isi pesan (yang juga berisi header).
DATA 354 send message
Penting untuk dicatat bahwa jika server email mendukung PIPELINING, seperti mail.port25.com melakukannya, server email SMTP mungkin menunggu hingga perintah DATA dikeluarkan sebelum merespons perintah lain setelah EHLO/HELO. Dalam kasus ini, masukkan perintah MAIL FROM, RCPT TO, dan DATA sebelum menunggu respons.
Setelah perintah DATA dikirim, kita dapat mulai mengirimkan isi pesan. Ini dimulai dengan berbagai header. Paling tidak, pesan harus berisi ke, dari, subjek, dan header tanggal. Header yang dimasukkan di sini akan ditampilkan kepada pengguna di klien email mereka.
Dari: "John Smith" <jsmith@port25.com> Ke: "Jane Doe" <jdoe@port25.com> Subjek: pesan uji dikirim dari sesi telnet manual Tanggal: Wed, 11 May 2011 16:19:57 -0400
Dengan header diatur, sekarang kita menambahkan satu baris kosong dengan gerakan kembali/baris (tekan enter dua kali) dan kemudian kita mulai isi pesan sebenarnya.
Hello World, ini adalah pesan uji yang dikirim dari sesi telnet manual. Hormat kami, administrator SMTP
Dengan pesan selesai, kita perlu memberi tahu server SMTP bahwa kita selesai dengan pesan dan ingin server email SMTP menerima pesan tersebut. Ini dilakukan dengan titik di barisnya sendiri. Jika selama penulisan pesan titik pada barisnya sendiri diperlukan, Anda harus memasukkan 2 titik, yang pertama melepas yang kedua.
. 250 2.6.0 pesan diterima
Jika Anda mendapatkan pesan kesalahan alih-alih pemberitahuan "diterima", catat detail terkait dan hubungi penyedia email Anda untuk bantuan lebih lanjut. Masalah koneksi juga dapat terkait dengan protokol keamanan - pastikan Anda using TLS 1.2 or higher untuk koneksi yang aman.
Terakhir, perintah QUIT dikirim untuk menutup sambungan:
QUIT 221 2.0.0 mail.port25.com says goodbye
Dengan itu, server email sekarang telah menerima pesan untuk pengiriman, pengujian kirim email telnet Anda selesai, dan itu harus berada di inbox alamat RCPT TO!!!
Berikut semua perintah tanpa gangguan:
telnet mail.port25.com 25 Trying 69.63.149.30... Connected to mail.port25.com (69.63.149.30). Escape character is '^]'. 220 mail.port25.com (PowerMTA(TM) v4.0) ESMTP service ready EHLO server.example.com 250-mail.port25.com says hello 250-STARTTLS 250-ENHANCEDSTATUSCODES 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 send message Dari: "John Smith" <jsmith@port25.com> Ke: "Jane Doe" <jdoe@port25.com> Subjek: pesan uji dikirim dari sesi telnet manual Tanggal: Wed, 11 May 2011 16:19:57 -0400 Hello World, ini adalah pesan uji yang dikirim dari sesi telnet manual. Hormat kami, administrator SMTP . 250 2.6.0 pesan diterima QUIT 221 2.0.0 mail.port25.com says goodbye
Mengirim email menggunakan telnet memungkinkan Anda menguji kemampuan koneksi dengan cepat dan biaya lebih rendah daripada peralatan diagnostik atau perangkat lunak yang kuat. Untuk alat uji SMTP yang lebih canggih, pertimbangkan using Swaks with SparkPost untuk pengujian email yang komprehensif.