SMTP
Basit Posta Aktarım Protokolü
Kısaca
SMTP, e-posta göndermek için standart internet protokolüdür; uygulamalar mesajları iletmek, posta sunucuları ise alıcının sunucusuna aktarmak için kullanır.
SMTP nedir?
SMTP (Basit Posta Aktarım Protokolü), e-postayı internet üzerinde taşıyan protokoldür. Gönder'e bastığınızda posta uygulamanız ya da uygulamanızın kodu, mesajı bir SMTP sunucusuna teslim eder; sunucu da onu alıcının alan adından sorumlu posta sunucusuna iletir. SMTP yalnızca göndermeyi ve aktarmayı ele alır; bir posta kutusunu okumanın yolu yoktur.
SMTP, TCP üzerinde metin tabanlı bir konuşmadır. İstemci sunucuyu EHLO ile selamlar, göndereni MAIL FROM ile, her alıcıyı RCPT TO ile belirtir, mesajı DATA sonrasında gönderir ve QUIT ile bitirir; sunucu her adıma, başarı için 250 gibi bir sayısal kodla yanıt verir. Bir mesajın nereye teslim edileceğini bulmak için gönderen sunucu, alıcının alan adının MX (mail exchanger) kayıtlarını DNS'te arar. 25 portu posta sunucuları arasında kullanılır; uygulamalar ve posta istemcileri ise giriş yaptıktan sonra postayı STARTTLS ile 587 portundan ya da baştan TLS ile 465 portundan iletir.
SMTP, postaneler arasında mektup taşıyan kamyonlar gibi çalışır: mektubu göndericinin postanesinden alıcınınkine ulaştırır ama kimsenin eline vermez. Geliştiriciler SMTP ile, uygulamaları parola sıfırlama, makbuz ve bildirim gönderdiğinde, ya kendi posta sunucuları ya da bir e-posta gönderim hizmeti aracılığıyla karşılaşır. Orijinal protokol bir mesajı kimin gönderdiğini doğrulamadığı için alıcı sunucular, bir e-postanın gerçek olup olmadığını değerlendirmek amacıyla SPF, DKIM ve DMARC denen DNS kayıtlarına da bakar; bu hem spam klasörlerinden uzak durmak hem de oltalamayla mücadele için şarttır.
SMTP sıklıkla IMAP ve POP3 ile karıştırılır. SMTP postayı gönderir ve aktarır; IMAP ve POP3 ise posta istemcilerinin bir posta kutusundan mesajları almak için kullandığı protokollerdir: IMAP postayı sunucuda tutar ve cihazlar arasında eşitler, POP3 ise genellikle onu tek bir cihaza indirir. Tipik bir e-posta uygulaması bu yüzden giden posta için SMTP, gelen posta için IMAP kullanır.
Önemli noktalar
- SMTP, e-posta göndermek ve aktarmak için standart protokoldür.
- Posta sunucuları mesajları
25portunda değiş tokuş eder; uygulamalar postayı TLS ile587veya465portundan iletir. - Gönderenler alıcının posta sunucusunu DNS MX kayıtları aracılığıyla bulur.
- SPF, DKIM ve DMARC kayıtları, alıcı sunucuların gönderenleri doğrulamasına ve sahtecilik (spoofing) riskini azaltmasına yardımcı olur.
- SMTP postayı gönderir; IMAP ve POP3 ise postayı alır.
Örnek
import os
import smtplib
from email.message import EmailMessage
msg = EmailMessage()
msg["From"] = "app@example.com"
msg["To"] = "user@example.org"
msg["Subject"] = "Reset your password"
msg.set_content("Use the link below to choose a new password.")
# Submit on port 587, upgrade the connection to TLS, then log in
with smtplib.SMTP("smtp.example.com", 587) as server:
server.starttls()
server.login("app@example.com", os.environ["SMTP_PASSWORD"])
server.send_message(msg)Sık sorulan sorular
SMTP, IMAP ve POP3 arasındaki fark nedir?
SMTP e-postayı bir istemciden sunucuya ve sunucular arasında gönderir. IMAP ve POP3 ise e-postayı bir posta kutusundan alır: IMAP mesajları sunucuda tutar ve cihazlar arasında eşitler, POP3 ise genellikle onları tek bir cihaza indirir.
Hangi SMTP portunu kullanmalıyım?
Bir uygulama veya posta istemcisi e-posta ilettiğinde STARTTLS ile 587 portunu ya da TLS ile 465 portunu kullanın ve giriş yapın. 25 portu posta sunucuları arasındaki teslimat içindir ve spam'i sınırlamak için internet ve bulut sağlayıcıları tarafından sıradan müşteriler için çoğunlukla engellenir.
Uygulamamın gönderdiği e-postalar neden spam'e düşüyor?
En yaygın nedenler, alan adınız için eksik ya da yanlış SPF, DKIM ve DMARC kayıtları, itibarı kötü bir IP adresinden gönderim yapılması veya spam gibi görünen içeriktir. Bu DNS kayıtlarını doğru şekilde kurmak, ilk kontrol edilecek şeydir.
İlgili sayfalar
- TCPAğlar, s. 28TCP, bir bağlantı kurup kaybolan verileri yeniden göndererek iki program arasında veriyi güvenilir ve sıralı biçimde ileten temel bir internet protokolüdür.
- DNSDevOps ve Bulut, s. 14DNS, internetin adlandırma sistemidir; example.com gibi insanın okuyabileceği alan adlarını bilgisayarların kullandığı sayısal IP adreslerine çevirir.
- TLSGüvenlik, s. 44TLS, ağda gönderilen veriyi şifreleyen ve sunucunun kimliğini doğrulayan, HTTPS, e-posta ve birçok başka bağlantıyı güvenceye alan kriptografik protokoldür.
- PortAğlar, s. 22Port, bir cihazdaki belirli bir programı ya da hizmeti tanımlayan, 0 ile 65535 arasında bir sayıdır; IP adresine gelen trafik böylece doğru uygulamaya ulaşır.
- PhishingGüvenlik, s. 27Phishing, suçluların güvenilir bir şirket ya da kişi kılığına girip insanları parola, kod ya da para vermeye kandırdığı bir sosyal mühendislik saldırısıdır.
- Arka Plan İşiBackend ve API'ler, s. 5Arka plan işi, bir sunucunun normal istek-yanıt döngüsünün dışında çalıştırdığı görevdir; e-posta gönderme gibi yavaş işler kullanıcıları bekletmez.
Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin