2013-06-24 29 views
7

SMTP hakkında bilgi edindim ve SMTP üzerinden bazı posta göndermek için telnet kullanmaya çalışıyorum.SMTP, Gmail ve STARTTLS'yi kullanma

Ben anlamda, kolay aracılığıyla gmail hesabına posta göndermek mümkün oldum:

$ host gmail.com 
... 
gmail.com mail is handled by 5 gmail-smtp-in.l.google.com. 
... 
$ telnet gmail-smtp-in.l.google.com 25 
Trying 74.125.142.27... 
... 
Connected to gmail-smtp-in.l.google.com. 
... 
HELO <[email protected]> 
... 

Ancak, sorun benim gmail hesabından gönderme yaşıyorum. SMTP hakkında anladığım kadarıyla, SMTP'yi giden posta SMTP sunucularına göndermek için SMTP kullanmalıyım. Bu da SMTP'yi gelen SMTP sunucusu vb. Alıcılara aktarmak için SMTP'yi kullanmaktadır. Bununla birlikte, zorlukla karşılaşıyorum. (gmail giden smtp posta sunucusu kanonik) üzerinden smtp.gmail.com numaralı bağlantı noktasınaile bağlantı kurduktan hemen ayrılır veya STARTTLS'a sorulur. Nasıl devam edeceğime dair cevapları bulamıyorum.

Herhangi bir yardım için teşekkür ederiz.

Sidenote: Şu anda internete erişmek için Starbucks ücretsiz Wi-Fi kullanıyorum. Aslında bilgisayarımdan telnet yapamıyorum (ana bilgisayar hataya yol yok). Bunun yerine, yalnızca okulumun ağındaki bir uzak linux kutusuna ssh, oradan da telnet numaralı telefondan çalışır. Neden bu olduğu hakkında bir düşünceniz var mı?

Teşekkürler!

cevap

21

Öncelikle yanlış bağlantı noktasını kullanıyorsunuz gibi görünüyor. Gmail, SSL üzerinden SMTP için 465 numaralı bağlantı noktasını ve documented here numaralı STARTTLS ile SMTP için 587 bağlantı noktasını gösteriyor. Bu ikisi arasındaki fark, SSL üzerinden SMTP'nin ilk önce güvenli bir SSL/TLS bağlantısı kurması ve bu bağlantı üzerinden SMTP'yi çalıştırmasıdır. STARTTLS'li SMTP şifrelenmemiş SMTP ile başlar ve ardından SSL/TLS'ye geçer. Bu yüzden HELO'nuza bir cevap alamıyorsunuz.

$ telnet smtp.gmail.com 587 
Trying 74.125.25.108... 
Connected to gmail-smtp-msa.l.google.com. 
Escape character is '^]'. 
220 mx.google.com ESMTP fr1sm24834956pbb.26 - gsmtp 
HELO <[email protected]> 
250 mx.google.com at your service 
STARTTLS 
220 2.0.0 Ready to start TLS 

Ama yine de elle herhangi e-posta göndermek mümkün olacak değildir port 587 Telnet bile. İlginç bir şey yapabilmeniz için STARTTLS'a sahip olmanız gerekecek ve şifrelemeyi görüşmek için SSL/TLS binary protocol'u kullanamayacaksınız.

+3

Kontrol dışarı Swaks: Alternatif

$ openssl s_client -starttls smtp -connect smtp.gmail.com:587 -crlf 

, sen SMTPS portuna doğrudan bağlanabilir posta istemcisi. http://www.jetmore.org/john/code/swaks/ – Jed

+0

benim için STARTTLS işe yaramadı, belgeye göre 587 TLS ve SSL için 465: https://support.google.com/a/ cevap/176600? hl = tr – flotto

15

Telnet istemcisi sizin için TLS oturumu üzerinde anlaşma yapmayacaktır. OpenSSL'nin s_client'i gibi başka bir araç kullanmalısınız. size sorun STARTTLS komutu takip ederek TLS müzakere işler: çiğ telnet ve arasındaki uçurumu

$ openssl s_client -connect smtp.gmail.com:465 -crlf 
İlgili konular