SMTP Commands Reference
SMTP komutları, yanıt kodları ve etkileşimli örnekler ile e-posta protokolü akışı için tam referans.
EHLOsessionEHLO <hostname>Extended greeting; identifies the client and requests ESMTP extensions.
EHLO mail.example.comHELOsessionHELO <hostname>Basic SMTP greeting. Use EHLO for modern servers.
HELO mail.example.comQUITsessionQUITClose the SMTP connection gracefully.
QUITSTARTTLSsessionSTARTTLSUpgrade the connection to TLS encryption.
STARTTLSNOOPsessionNOOPNo operation; used to keep the connection alive.
NOOPRSETsessionRSETAbort the current mail transaction and reset the session.
RSETAUTHauthAUTH <mechanism> [credentials]Authenticate the client to the server (PLAIN, LOGIN, CRAM-MD5).
AUTH LOGINMAIL FROMmessageMAIL FROM:<address>Specify the sender envelope address.
MAIL FROM:<sender@example.com>RCPT TOmessageRCPT TO:<address>Specify a recipient envelope address. Can be repeated.
RCPT TO:<recipient@example.com>DATAmessageDATABegin transmitting the message body. End with a line containing only a period.
DATAVRFYsessionVRFY <address>Verify that a mailbox exists (often disabled for security).
VRFY user@example.comEXPNsessionEXPN <list>Expand a mailing list (often disabled for security).
EXPN usersBu araç hakkında
SMTP (Simple Mail Transfer Protocol), posta sunucularının e-postaları internet üzerinden aktarmak ve teslim etmek için kullandığı metin tabanlı bir protokoldür. Hem e-posta özelliklerini entegre eden geliştiricilerin hem de teslimat sorunlarını gideren sistem yöneticilerinin temel komutları net biçimde kavraması gerekir.
Bu referans, HELO/EHLO, MAIL FROM, RCPT TO, DATA, STARTTLS, AUTH ve QUIT gibi temel SMTP komutlarını söz dizimi, kısa açıklama ve örnekle birlikte listeler. Bunu telnet veya openssl üzerinden manuel bir oturumu adım adım yürütmek, bir iletinin neden reddedildiğini teşhis etmek ya da protokolün nasıl çalıştığını öğrenmek için kullanabilirsiniz.
Modern posta sunucularının neredeyse her zaman şifreleme için STARTTLS ve kimlik doğrulamalı gönderim için AUTH gerektirdiğini, dolayısıyla şifrelenmemiş düz oturumların çoğu zaman reddedildiğini unutmayın. Bu sayfayı üretim ortamı posta yapılandırması rehberi olarak değil, bir öğrenme ve başvuru aracı olarak değerlendirin.
Sıkça Sorulan Sorular
Kod Uygulaması
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
def send_email_smtp(
smtp_host: str,
smtp_port: int,
username: str,
password: str,
from_addr: str,
to_addr: str,
subject: str,
body: str,
use_tls: bool = True
) -> bool:
"""Send email using SMTP with manual command flow."""
try:
with smtplib.SMTP(smtp_host, smtp_port) as server:
server.ehlo() # EHLO command
if use_tls:
server.starttls() # STARTTLS command
server.ehlo() # Re-EHLO after TLS
server.login(username, password) # AUTH command
msg = MIMEMultipart()
msg['From'] = from_addr
msg['To'] = to_addr
msg['Subject'] = subject
msg.attach(MIMEText(body, 'plain'))
# MAIL FROM, RCPT TO, DATA commands
server.sendmail(from_addr, to_addr, msg.as_string())
return True
except smtplib.SMTPException as e:
print(f"SMTP Error: {e}")
return False
# Test SMTP connection manually
def test_smtp_connection(host: str, port: int) -> dict:
import socket
try:
with smtplib.SMTP(host, port, timeout=5) as server:
banner = server.getwelcome()
ehlo_resp = server.ehlo()
return {
"connected": True,
"banner": banner.decode(),
"extensions": list(server.esmtp_features.keys())
}
except Exception as e:
return {"connected": False, "error": str(e)}
result = test_smtp_connection("smtp.gmail.com", 587)
print(result)Comments & Feedback
Comments are powered by Giscus. Sign in with GitHub to leave a comment.