Verbind met SMTP-server
Maak verbinding met SMTP‑server met SSL
Om een beveiligde verbinding met een SMTP‑server die SSL ondersteunt tot stand te brengen, moet u de volgende sleutel‑eigenschappen van de SmtpClient klasse:
-
Host: Het adres van de SMTP‑server (bijv. smtp.gmail.com)
-
Poort: De poort die gebruikt wordt voor SSL‑communicatie (gewoonlijk 465 voor impliciete SSL of 587 voor expliciete SSL/TLS)
-
Gebruikersnaam: De accountnaam die gebruikt wordt voor authenticatie
-
Wachtwoord: Het wachtwoord voor het SMTP‑account
-
Beveiligingsopties: Het type encryptie dat gebruikt moet worden (SSLEXPLICIT, SSLIMPLICIT, enz.)
De volgende codevoorbeeld laat zien hoe een SSL‑ondersteunde SMTP‑server te configureren en te verbinden:
Stel een time‑out in voor de groet‑respons van de server
Bij het tot stand brengen van een verbinding met een SMTP‑server stuurt de server doorgaans een groet‑string na een succesvolle verbinding. Deze respons bevestigt dat de server klaar is om verder te communiceren.
In sommige scenario’s werken e‑mailclients in automatische verbindingsmodus, waarbij ze meerdere combinaties van beveiligingsprotocollen en poorten (zoals impliciete SSL of STARTTLS) proberen om een succesvolle verbinding tot stand te brengen. Als de configuratie van de client niet overeenkomt met de verwachte beveiligingsmodus van de server, zal de server de groet‑string niet sturen. Deze mismatch zorgt ervoor dat de client wacht tot de algemene time‑out verloopt voordat de volgende combinatie geprobeerd wordt — wat leidt tot trage verbindingsafhandeling.
Om dit gedrag te verbeteren, biedt Aspose.Email de greeting_timeout eigenschap in de SmtpClient klasse. Deze eigenschap stelt een specifieke time‑out (in milliseconden) in voor het wachten op de server‑groet. Als de groet niet binnen het opgegeven interval ontvangen wordt, probeert de client onmiddellijk de volgende verbindingsconfiguratie — wat automatische verbindingsprocessen aanzienlijk versnelt.
Het volgende codevoorbeeld laat zien hoe de eigenschap in een project geïmplementeerd kan worden:
import aspose.email as ae
client = ae.clients.smtp.SmtpClient("localhost", 25, "username", "password")
client.greeting_timeout = 4000
E‑mails verzenden via SMTP met een SOCKS‑proxy
Aspose.Email biedt ondersteuning voor versies 4, 4a en 5 van het SOCKS‑proxy‑protocol. Het volgende codevoorbeeld toont hoe u een e‑mail kunt verzenden via SMTP met een 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)"))
E‑mails verzenden via SMTP met een HTTP‑proxy
Het onderstaande codevoorbeeld toont het gebruik van een HTTP‑proxy om een e‑mail te versturen via een 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"))
Selecteer ondersteunde SMTP‑authenticatiemethoden in Python
Om een veilige en compatibele verbinding met een SMTP‑server te waarborgen, is het belangrijk een authenticatiemethode te gebruiken die zowel door de client als de server wordt ondersteund. Aspose.Email voor Python via .NET biedt ingebouwde eigenschappen om dit te beheren:
-
supported_authentication— haalt een lijst op van authenticatiemethoden die door de SMTP‑server ondersteund worden. -
allowed_authentication— haalt of stelt de authenticatiemethoden in die de client mag gebruiken.
Door deze eigenschappen te gebruiken, kunnen ontwikkelaars de mogelijkheden van de client afstemmen op de eisen van de server en authenticatiefouten tijdens het verbindingsproces vermijden.
Het volgende codefragment laat zien hoe de toegestane SMTP‑authenticatiemethode gespecificeerd wordt met behulp van allowed_authentication eigenschap:
client.allowed_authentication = ae.clients.smtp.SmtpKnownAuthenticationType.LOGIN
Stel SMTP‑server time‑out in
Bij het verzenden van e‑mails via een netwerk is het instellen van een geschikte time‑out essentieel om te voorkomen dat uw applicatie blijft hangen als de server niet reageert. De timeout eigenschap van de SmtpClient klasse in Aspose.Email voor Python via .NET stelt u in staat de maximale wachttijd (in milliseconden) voor serverresponses te definiëren.
Deze eigenschap geldt voor bewerkingen zoals het tot stand brengen van een verbinding of het verzenden van SMTP‑commando’s. Als de server niet binnen de opgegeven tijd reageert, werpt de client een time‑out‑exceptie, waardoor u onresponsieve servers effectiever kunt afhandelen.
Gebruik de volgende codefragment om de time‑out voor de serverrespons in te stellen:
import aspose.email as ae
client = ae.clients.smtp.SmtpClient("host", 587, "username", "password", ae.clients.SecurityOptions.SSL_EXPLICIT)
# 60 seconds
client.timeout = 60000
Schakel TLS‑encryptie in voor beveiligde SMTP‑verbindingen
Aspose.Email ondersteunt veilige communicatie met SMTP‑servers via SSL‑ en TLS‑cryptografische protocollen. Deze protocollen helpen de uitgewisselde data tussen uw applicatie en de mailserver te beschermen, waardoor vertrouwelijkheid en integriteit tijdens de transmissie gewaarborgd zijn.
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.
Het volgende codevoorbeeld laat zien hoe TLS 1.3 ingesteld wordt voor SMTP‑communicatie:
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
Gebruik van het CRAM‑MD5‑mechanisme voor authenticatie
Aspose.Email voor Python via .NET ondersteunt het CRAM‑MD5‑authenticatiemechanisme, wat de beveiliging verbetert door het verzenden van wachtwoorden in platte tekst tijdens SMTP‑authenticatie te vermijden. Deze methode is bijzonder nuttig bij het verbinden met servers die challenge‑response‑authenticatie vereisen.
Om CRAM‑MD5‑authenticatie in te schakelen, stel de allowed_authentication eigenschap van de SmtpClient klasse naar CRAM_MD5, zoals getoond in het volgende codevoorbeeld:
client.allowed_authentication = ae.clients.smtp.SmtpKnownAuthenticationType.CRAM_MD5