it-swarm-id.com

Menghubungkan ke smtp.gmail.com melalui baris perintah

Saya sedang dalam proses menulis aplikasi yang mengirim surat melalui ID pengguna dan kata sandi GMail yang valid.

Saya hanya ingin mensimulasikan koneksi SMTP pada baris perintah Windows XP saya, dan ketika saya telnet smtp.gmail.com di port 465 - saya tidak melihat apa pun. Jendela perintah kosong dengan judul Telnet smtp.gmail.com terbuka dengan kursor. Ketika saya mengetikkan EHLO atau perintah jabat tangan SMTP biasa, Prompt baru saja ditutup. 

Saya tidak dapat menemukan apa yang salah dan di mana. Saya mencoba menghubungkan ke 587, tidak terhubung di telnet sama sekali. Adakah yang bisa menjelaskan jika saya melakukan kesalahan?

35
Abhishek

Menggunakan Linux atau OSx, lakukan apa yang disarankan Sorin tetapi gunakan port 465 sebagai gantinya. 25 adalah port SMTP generik, tetapi bukan yang digunakan GMail. Juga, saya tidak percaya Anda ingin menggunakan -starttls smtp

openssl s_client -connect smtp.gmail.com:465

Anda harus mendapatkan banyak informasi tentang sesi SSL dan jawabannya: 

220 mx.google.com ...

Ketikkan 

HELO smtp.gmail.com 

dan Anda akan menerima: 

250 mx.google.com at your service

Dari sana tidak semudah hanya mengirim pesan SMTP karena Gmail memiliki perlindungan untuk memastikan Anda hanya mengirim email yang tampaknya berasal dari akun yang sebenarnya milik Anda. Alih-alih mengetik "Helo", gunakan "Ehlo". Saya tidak tahu banyak tentang SMTP jadi saya tidak bisa menjelaskan perbedaannya, dan tidak punya banyak waktu untuk meneliti. Mungkin seseorang dengan lebih banyak pengetahuan dapat menjelaskan. 

Kemudian, ketik "login auth" dan Anda akan menerima yang berikut: 

334 VXNlcm5hbWU6

Ini pada dasarnya adalah kata "Nama Pengguna" yang dikodekan dalam Basis 64. Menggunakan encoder Basis 64 seperti ini , encode nama pengguna Anda dan masukkan. Lakukan hal yang sama untuk kata sandi Anda, yang diminta berikutnya. Anda harus melihat: 

235 2.7.0 Accepted

Dan itu saja, Anda sudah login.

Ada satu lagi keanehan untuk diatasi jika Anda menggunakan terminal OSx atau Linux. Hanya dengan menekan tombol "ENTER" tampaknya tidak menghasilkan CRLF yang SMTP perlu akhiri pesan. Anda harus menggunakan "CTRL + V + ENTER". Jadi, ini akan terlihat seperti berikut: 

^M
.^M
250 2.0.0 OK
47
the911s

Untuk terminal OSX:

openssl s_client -connect smtp.gmail.com:25 -starttls smtp 
7

Gmail membutuhkan komunikasi SMTP dengan server mereka untuk dienkripsi. Meskipun Anda membuka koneksi ke server Gmail pada port 465, sayangnya Anda tidak akan dapat berkomunikasi dengannya dalam plaintext karena Gmail mengharuskan Anda untuk menggunakan enkripsi STARTTLS/SSL untuk koneksi tersebut.

5
Jez

Jadaaih, Anda dapat menghubungkan kirim SMTP melalui tautan CURL - ke Komunitas Pengembang Curl

Ini adalah Sumber Curl Email Client .

4
Jasmin25

Coba ini:

telnet smtp.gmail.com 587
3
none

tcp/465 pada awalnya dimaksudkan untuk membangun lapisan SSL (dan TLS yang lebih baru) terlebih dahulu, dan di dalam melakukan protokol-protokol lama atau teks biasa (smtp di sini)

tcp/587 dimaksudkan sebagai pengganti port tcp/25 default pada awalnya ketika spammer dan serangan surat massal dimulai seperti satu dekade atau lebih yang lalu, tetapi juga selama masa AOL yang terkenal itu, ketika beberapa ISP lucu memiliki beberapa blok pada port default yang keluar (seperti seperti itu tcp/25) untuk menyangkal pelanggan mereka sendiri (AOL) untuk mengirim massal email/spam saat itu, tetapi pelanggan AOL perlu menggunakan akun email alternatif dan penyedia email masih perlu mengirim email mereka dari koneksi internet AOL , sehingga mereka masih dapat terhubung ke tcp/587 dan melakukan smtp sederhana di atasnya saat itu.

Kesepakatan dengan cara STARTTLS untuk melakukan smtp adalah dengan menggunakan dua port tcp/25 dan tcp/587 teks biasa yang sudah dikenal, dan hanya ketika koneksi teks-jelas awal berhasil, untuk kemudian MULAI lapisan TLS (dengan demikian STARTTLS) sejak saat itu, memiliki koneksi yang aman sejak saat itu dan seterusnya.

Adapun debugging hal-hal semacam ini mungkin melalui alat baris perintah, misalnya untuk windows ada surat perintah baris sejarah blat (smtp), yang sampai hari ini tidak dapat melakukan TLS (STARTTLS) sehingga hanya dapat menggunakan teks biasa smtp untuk kirim emailnya.

http://www.blat.net/

Lalu ada banyak proyek freeware dan perangkat lunak sumber terbuka yang memiliki lebih banyak kemampuan dan fitur, seperti

klien smtp: mailsend @ googlecode http://code.google.com/p/mailsend/

klien smtp: msmtp @ sourceforge (terkait dengan mpop di bawah) http://msmtp.sourceforge.net/

klien pop3: mpop @ sourceforge http://mpop.sourceforge.net/

2
abittner

Mulai sesi dari terminal:

openssl s_client -connect smtp.gmail.com:25 -starttls smtp

Baris terakhir dari respons harus "250 SMTPUTF8"

Mulai login

auth login

Ini harus mengembalikan "334 VXNlcm5hbWU6".

Ketikkan nama pengguna

Ketikkan nama pengguna Anda dalam penyandian base64 (mis. echo -n 'your-username' | base64)

Ini harus mengembalikan "334 UGFzc3dvcmQ6"

Ketik kata sandi

Ketikkan kata sandi Anda dalam encoding base64 (mis. echo -n 'your-password' | base64)

Sukses

Anda akan melihat "235 2.7.0 Diterima" dan Anda berhasil masuk

2
sqren

Periksa pos ini di lifehacker: Geek to Live: Cadangkan Gmail dengan fetchmail . Ini menggunakan program baris perintah. Periksa dan lihat apakah itu membantu. BTW mengapa Anda menggunakan baris perintah ketika ada banyak alternatif bagus lainnya?

2
Shoban

gmail menggunakan koneksi terenkripsi. Jadi, bahkan setelah Anda membuat koneksi, Anda tidak akan dapat mengirim email apa pun. Enkripsi agak rumit untuk dikelola. Coba gunakan openssl sebagai gantinya.

Thread di bawah ini seharusnya membantu-

Bagaimana cara mengirim email menggunakan perintah SMTP sederhana melalui Gmail?

0
dark3viL