Anslut till SMTP‑server

Anslut till SMTP-server med SSL

För att etablera en säker anslutning till en SMTP-server som stödjer SSL måste du konfigurera följande nyckelegenskaper för SmtpClient klass:

  • Värd: Adressen till SMTP-servern (t.ex. smtp.gmail.com)

  • Port: Porten som används för SSL-aktiverad kommunikation (vanligtvis 465 för implicit SSL eller 587 för explicit SSL/TLS)

  • Användarnamn: Kontonamnet som används för autentisering

  • Lösenord: Lösenordet för SMTP-kontot

  • Säkerhetsalternativ: Typen av kryptering som ska användas (SSLEXPLICIT, SSLIMPLICIT, etc.)

Följande kodexempel visar hur man konfigurerar och ansluter till en SSL-aktiverad SMTP-server:

Ställ in en timeout för serverns hälsningssvar

När en anslutning till en SMTP-server upprättas skickar servern vanligtvis en hälsningssträng efter en lyckad anslutning. Detta svar bekräftar att servern är redo att fortsätta kommunikationen.

I vissa scenarier kör e‑postklienter i automatiskt anslutningsläge och provar flera kombinationer av säkerhetsprotokoll och portar (såsom implicit SSL eller STARTTLS) för att etablera en lyckad anslutning. Om klientens konfiguration inte matchar serverns förväntade säkerhetsläge skickar servern inte hälsningssträngen. Denna missmatchning får klienten att vänta tills den generella tidsgränsen löper ut innan nästa kombination provas — vilket leder till långsam anslutningshantering.

För att förbättra detta beteende erbjuder Aspose.Email greeting_timeout egenskap i SmtpClient klass. Denna egenskap anger en specifik timeout (i millisekunder) för att vänta på serverns hälsningssträng. Om hälsningen inte tas emot inom den angivna tidsintervallet försöker klienten omedelbart nästa konfiguration — vilket avsevärt snabbar upp automatiska anslutningsprocesser.

Följande kodexempel visar hur man implementerar egenskapen i ett projekt:

import aspose.email as ae

client = ae.clients.smtp.SmtpClient("localhost", 25, "username", "password")
client.greeting_timeout = 4000

Skicka e‑post via SMTP med en SOCKS-proxy

Aspose.Email ger stöd för versionerna 4, 4a och 5 av SOCKS-proxy‑protokollet. Följande kodexempel visar hur man skickar ett e‑postmeddelande med SMTP via en SOCKS-proxy:

import aspose.email as ae

client = ae.clients.smtp.SmtpClient("smtp.domain.com", "username", "password")

client.security_options = ae.clients.SecurityOptions.SSL_IMPLICIT
# proxy address
proxy_address = "192.168.203.142"
#proxy port
proxy_port = 1080
socks_proxy = ae.clients.SocksProxy(proxy_address, proxy_port, ae.clients.SocksVersion.SOCKS_V5)
client.proxy = socks_proxy
client.send(ae.MailMessage("sender@domain.com", "receiver@domain.com", "Sending Email via proxy", "Implement socks proxy protocol for versions 4, 4a, 5 (only Username/Password authentication)"))

Skicka e‑post via SMTP med en HTTP-proxy

Kodexemplet nedan visar hur man använder en HTTP-proxy för att skicka ett e‑postmeddelande via en SMTP-server:

import aspose.email as ae

http_proxy = ae.clients.HttpProxy("18.222.124.59", 8080)
client = ae.clients.smtp.SmtpClient("host", 587, "username", "password")
client.proxy = http_proxy
client.send(ae.MailMessage("sender@domain.com", "receiver@domain.com", "Sending Email via proxy", "Body"))

Välj stödde SMTP-autentiseringsmetoder i Python

För att säkerställa en säker och kompatibel anslutning till en SMTP-server är det viktigt att använda en autentiseringsmetod som stöds av både klienten och servern. Aspose.Email för Python via .NET erbjuder inbyggda egenskaper för att hantera detta:

  • supported_authentication — hämtar en lista över autentiseringsmetoder som stöds av SMTP-servern.

  • allowed_authentication — hämtar eller anger de autentiseringsmetoder som klienten får använda.

Genom att använda dessa egenskaper kan utvecklare anpassa klientens möjligheter till serverns krav och undvika autentiseringsfel under anslutningsprocessen.

Följande kodsnutt visar hur du specificerar den tillåtna SMTP-autentiseringsmetoden med hjälp av allowed_authentication egenskap:

client.allowed_authentication = ae.clients.smtp.SmtpKnownAuthenticationType.LOGIN

Ställ in SMTP-serverns timeout

När du skickar e‑post över ett nätverk är det viktigt att ställa in en lämplig tidsgräns för att förhindra att din applikation hänger om servern inte svarar. timeout egenskap hos SmtpClient klass i Aspose.Email för Python via .NET låter dig definiera maximal väntetid (i millisekunder) för serverns svar.

Denna egenskap gäller operationer som att etablera en anslutning eller skicka SMTP-kommandon. Om servern inte svarar inom angiven tid kastar klienten ett timeout‑undantag, vilket hjälper dig att hantera oresponsiva servrar mer effektivt.

Använd följande kodsnutt för att ange tidsgränsen för serverns svar:

import aspose.email as ae

client = ae.clients.smtp.SmtpClient("host", 587, "username", "password", ae.clients.SecurityOptions.SSL_EXPLICIT)
# 60 seconds
client.timeout = 60000

Aktivera TLS-kryptering för säkra SMTP-anslutningar

Aspose.Email stöder säker kommunikation med SMTP-servrar med hjälp av SSL- och TLS-kryptografiska protokoll. Dessa protokoll hjälper till att skydda data som utbyts mellan din applikation och e-postservern, vilket säkerställer konfidentialitet och integritet under överföringen.

NOTE: Only versions of SSL/TLS supported by your current Python framework can be applied. Unsupported protocol versions will be silently ignored without raising exceptions. If you need to bypass compatibility checks and explicitly set the encryption protocols, use the `set_supported_encryption_unsafe(value)` method of the [SmtpClient](https://reference.aspose.com/email/python-net/aspose.email.clients.smtp/smtpclient/#smtpclient-class) class.

Följande kodexempel visar hur man ställer in TLS 1.3 för SMTP-kommunikation:

import aspose.email as ae

client = ae.clients.smtp.SmtpClient("host", 587, "username", "password", ae.clients.SecurityOptions.SSL_EXPLICIT)
client.supported_encryption = ae.clients.base.EncryptionProtocols.TLS13

Använda CRAM-MD5-mekanismen för autentisering

Aspose.Email för Python via .NET stöder CRAM-MD5-autentiseringsmekanismen, vilket ökar säkerheten genom att undvika överföring av lösenord i klartext under SMTP-autentisering. Denna metod är särskilt användbar när du ansluter till servrar som kräver challenge‑response‑autentisering.

För att aktivera CRAM-MD5-autentisering, ange allowed_authentication egenskap hos SmtpClient klass till CRAM_MD5, som visas i följande kodexempel:

client.allowed_authentication = ae.clients.smtp.SmtpKnownAuthenticationType.CRAM_MD5