Mit SMTP‑Server verbinden
Verbindung zum SMTP‑Server mit SSL herstellen
Um eine sichere Verbindung zu einem SSL‑unterstützenden SMTP‑Server herzustellen, müssen Sie die folgenden Schlüsseleigenschaften des SmtpClient Klasse:
-
Host: Die Adresse des SMTP‑Servers (z. B. smtp.gmail.com)
-
Port: Der Port, der für SSL‑aktivierte Kommunikation verwendet wird (typischerweise 465 für implizites SSL oder 587 für explizites SSL/TLS)
-
Benutzername: Der Kontoname, der für die Authentifizierung verwendet wird
-
Passwort: Das Passwort für das SMTP-Konto
-
Sicherheitsoptionen: Der Typ der zu verwendenden Verschlüsselung (SSLEXPLICIT, SSLIMPLICIT usw.)
Das folgende Codebeispiel zeigt, wie Sie einen SSL‑aktivierten SMTP‑Server konfigurieren und verbinden:
Timeout für die Begrüßungsantwort des Servers festlegen
Beim Herstellen einer Verbindung mit einem SMTP‑Server sendet dieser typischerweise nach erfolgreicher Verbindung eine Begrüßungszeichenkette. Diese Antwort bestätigt, dass der Server bereit ist, die Kommunikation fortzusetzen.
In manchen Szenarien arbeiten E‑Mail‑Clients im automatischen Verbindungsmodus und probieren mehrere Kombinationen von Sicherheitsprotokollen und Ports (wie implizites SSL oder STARTTLS), um eine erfolgreiche Verbindung herzustellen. Stimmen die Client‑Konfiguration nicht mit dem vom Server erwarteten Sicherheitsmodus überein, sendet der Server die Begrüßungszeichenkette nicht. Diese Diskrepanz führt dazu, dass der Client bis zum Ablauf des allgemeinen Timeouts wartet, bevor er die nächste Kombination versucht – was zu einer langsamen Verbindungsabwicklung führt.
Um dieses Verhalten zu verbessern, stellt Aspose.Email die greeting_timeout Eigenschaft in der SmtpClient Klasse. Diese Eigenschaft legt ein spezifisches Timeout (in Millisekunden) für das Warten auf die Begrüßungszeichenkette des Servers fest. Wird die Begrüßung nicht innerhalb des angegebenen Intervalls empfangen, versucht der Client sofort die nächste Konfiguration — was automatische Verbindungsprozesse erheblich beschleunigt.
Das folgende Codebeispiel zeigt, wie die Eigenschaft in ein Projekt implementiert wird:
import aspose.email as ae
client = ae.clients.smtp.SmtpClient("localhost", 25, "username", "password")
client.greeting_timeout = 4000
E‑Mails über SMTP mit einem SOCKS‑Proxy senden
Aspose.Email unterstützt die Versionen 4, 4a und 5 des SOCKS‑Proxy‑Protokolls. Das folgende Codebeispiel zeigt, wie man eine E‑Mail über SMTP mit einem SOCKS‑Proxy sendet:
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 über SMTP mit einem HTTP‑Proxy senden
Das nachstehende Codebeispiel demonstriert die Verwendung eines HTTP‑Proxys zum Senden einer E‑Mail über einen 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"))
Unterstützte SMTP‑Authentifizierungsmethoden in Python auswählen
Um eine sichere und kompatible Verbindung zu einem SMTP‑Server zu gewährleisten, ist es wichtig, ein von beiden, Client und Server, unterstütztes Authentifizierungsverfahren zu verwenden. Aspose.Email für Python via .NET bietet integrierte Eigenschaften um dies zu verwalten:
-
supported_authentication— ruft eine Liste der vom SMTP‑Server unterstützten Authentifizierungsmethoden ab. -
allowed_authentication— gibt die vom Client zulässigen Authentifizierungsmethoden zurück oder setzt sie.
Durch die Verwendung dieser Eigenschaften können Entwickler die Fähigkeiten des Clients an die Anforderungen des Servers anpassen und Authentifizierungsfehler im Verbindungsprozess vermeiden.
Der folgende Codeausschnitt zeigt, wie die zulässige SMTP‑Authentifizierungsmethode mit der allowed_authentication Eigenschaft:
client.allowed_authentication = ae.clients.smtp.SmtpKnownAuthenticationType.LOGIN
SMTP‑Server‑Timeout festlegen
Beim Senden von E‑Mails über ein Netzwerk ist das Setzen eines geeigneten Timeouts wichtig, um zu verhindern, dass Ihre Anwendung hängt, wenn der Server nicht antwortet. Der timeout Eigenschaft des SmtpClient Klasse in Aspose.Email für Python via .NET ermöglicht das Festlegen der maximalen Wartezeit (in Millisekunden) für Serverantworten.
Diese Eigenschaft gilt für Vorgänge wie das Herstellen einer Verbindung oder das Senden von SMTP‑Befehlen. Wenn der Server nicht innerhalb der angegebenen Zeit reagiert, löst der Client eine Timeout‑Ausnahme aus, was Ihnen hilft, nicht reagierende Server effektiver zu handhaben.
Verwenden Sie den folgenden Codeausschnitt, um das Timeout für die Serverantwort festzulegen:
import aspose.email as ae
client = ae.clients.smtp.SmtpClient("host", 587, "username", "password", ae.clients.SecurityOptions.SSL_EXPLICIT)
# 60 seconds
client.timeout = 60000
TLS‑Verschlüsselung für sichere SMTP‑Verbindungen aktivieren
Aspose.Email unterstützt die sichere Kommunikation mit SMTP‑Servern mittels SSL‑ und TLS‑Kryptographie‑Protokollen. Diese Protokolle schützen die zwischen Ihrer Anwendung und dem Mail‑Server ausgetauschten Daten und gewährleisten Vertraulichkeit und Integrität während der Übertragung.
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.
Das folgende Codebeispiel zeigt, wie TLS 1.3 für die SMTP‑Kommunikation eingestellt wird:
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
Verwendung des CRAM-MD5‑Mechanismus zur Authentifizierung
Aspose.Email für Python via .NET unterstützt den CRAM-MD5‑Authentifizierungsmechanismus, der die Sicherheit erhöht, indem die Übertragung von Klartext‑Passwörtern bei der SMTP‑Authentifizierung vermieden wird. Diese Methode ist besonders nützlich, wenn Sie sich mit Servern verbinden, die Challenge‑Response‑Authentifizierung erfordern.
Um CRAM-MD5‑Authentifizierung zu aktivieren, setzen Sie das allowed_authentication Eigenschaft des SmtpClient Klasse zu CRAM_MD5, wie im folgenden Codebeispiel gezeigt:
client.allowed_authentication = ae.clients.smtp.SmtpKnownAuthenticationType.CRAM_MD5