E‑Mails senden & Nachrichten per SMTP weiterleiten

Die SmtpClient Klasse in Aspose.Email for Python via .NET bietet eine robuste und flexible Schnittstelle zum Senden von E-Mails über das Simple Mail Transfer Protocol (SMTP). Sie ist der primäre Einstiegspunkt für Entwickler, die E‑Mail‑Nachrichten in ihren Anwendungen versenden möchten.

Hauptfunktionen von SmtpClient Klasse einbeziehen:

  • SMTP-E-Mail-Zustellung: Ermöglicht das Senden von E-Mails direkt über einen SMTP-Server.

  • Alternative Zustellungsoptionen: Unterstützt zusätzliche Zustellmethoden wie das Speichern von Nachrichten im Dateisystem oder das Schreiben in eine Nachrichtenwarteschlange.

  • Synchronen und asynchronen Vorgänge:

    • Synchroner Modus: Verwenden Sie die Send-Methoden, um den aktuellen Thread zu blockieren, bis die E‑Mail vollständig übertragen wurde.

    • Asynchroner Modus: Verwenden Sie SendAsync‑Methoden, um Nachrichten im Hintergrund zu senden, sodass die Anwendung reaktionsfähig bleibt.

  • TNEF‑Unterstützung: Ermöglicht das Senden von Nachrichten im Transport Neutral Encapsulation Format (TNEF) für die Kompatibilität mit Microsoft‑Outlook‑Funktionen.

Dieser Artikel behandelt alle wichtigen Funktionen, die über die SmtpClient Klasse, die zeigt, wie man Standard‑ und erweiterte E‑Mail‑Nachrichten mit voller Kontrolle über Konfiguration und Versand sendet.

E‑Mails synchron senden

Die SmtpClient.send Methode ermöglicht das synchrone Senden einer E‑Mail‑Nachricht. Dieser Ansatz ist nützlich, wenn die Anwendung die Zustellung bestätigen muss, bevor sie fortfährt.

Um eine Klartext‑E‑Mail synchron mit Aspose.Email für Python via .NET zu senden, verwenden Sie die folgenden Schritte und das untenstehende Codebeispiel:

  1. Erstellen Sie ein MailMessage Instanz und legen Sie Absender, Empfänger, Betreff und Body fest.
  2. Konfigurieren Sie die SmtpClient mit dem Server‑Host, Port, Benutzernamen und Passwort.
  3. Rufen Sie die send Methode auf dem SmtpClient Instanz und übergeben Sie die MailMessage Objekt.
# Create email
eml = ae.MailMessage()
eml.subject = "Message with Plain Text Body"
eml.body = "This is text body."
eml.from_address = "from@gmail.com"
eml.to.append(ae.MailAddress("to@gmail.com", "Recipient 1")) 

# Configure SmtpClient object
client = SmtpClient("smtp.gmail.com", 995, "username", "password")
client.security_options = SecurityOptions.AUTO 

# Send email
client.send(eml)

Sende eine vorkonfigurierte EML-Datei via SMTP

Wenn Sie eine bereits erstellte und im EML-Format gespeicherte E‑Mail-Nachricht senden müssen, können Sie sie programmgesteuert mit Aspose.Email for Python via .NET laden und senden.

Der folgende Codeabschnitt mit Schritten demonstriert, wie man eine EML-Datei mit SmtpClient:

  1. Laden Sie die EML-Datei mit der MailMessage.load Methode.
  2. Erstellen und konfigurieren Sie eine Instanz von SmtpClient, wobei der SMTP-Serverhost, Benutzername und Passwort für die Authentifizierung bereitgestellt werden.
  3. Rufen Sie die send Methode auf dem SmtpClient Instanz und übergeben Sie die geladene Nachricht.
import aspose.email as ae

message = ae.MailMessage.load("test.eml")

# Send this message using SmtpClient
client = ae.clients.SmtpClient("host", "username", "password")
client.send(message)

Sende eine Nur-Text‑E‑Mail

Sie können eine Nur-Text‑E‑Mail mit Aspose.Email senden, indem Sie den Nachrichteninhalt als einfachen Text angeben. Die MailMessage.body Eigenschaft wird verwendet, um den Inhalt zu definieren, während die SmtpClient Klasse übernimmt den Sendevorgang.

Der folgende Codeabschnitt mit Schritten zeigt, wie man eine Nur-Text‑E‑Mail sendet:

  1. Erstellen Sie eine Instanz von dem MailMessage Klasse.
  2. Legen Sie die E‑Mail‑Adressen des Absenders und des Empfängers fest.
  3. Weisen Sie den Nur-Text-Inhalt der body‑Eigenschaft zu.
  4. Erstellen Sie eine Instanz von dem SmtpClient Klasse mit den Serverdetails und Anmeldeinformationen.
  5. Senden Sie die E‑Mail mit dem send Methode.

Sende HTML‑E‑Mail

Aspose.Email for Python via .NET ermöglicht das Senden von E‑Mails mit HTML‑formatierten Inhalten mithilfe der MailMessage Klasse. Indem Sie HTML-Inhalt der html_body Eigenschaft und Einstellung is_body_html auf True setzen, können Sie reich formatierte, stilisierte Nachrichten erstellen.

Das folgende Codebeispiel mit Schritten zeigt, wie man eine HTML‑E‑Mail sendet:

  1. Erstellen Sie eine Instanz von dem MailMessage Klasse.
  2. Legen Sie die E‑Mail‑Adressen des Absenders und des Empfängers fest.
  3. Festlegen is_body_html = True um HTML-Formatierung anzuzeigen.
  4. Weisen Sie Ihren HTML-Inhalt zu html_body Eigenschaft.
  5. Erstellen und konfigurieren Sie die SmtpClient Instanz.
  6. Verwenden Sie die send Methode, um die Nachricht zu übertragen.

Hinweis: Obwohl dieses Beispiel einfaches HTML verwendet, können Sie komplexere HTML-Strukturen einbinden, um responsive und gebrandete E‑Mail‑Layouts zu erstellen.

Sende HTML-E-Mail mit Nur-Text-Alternative

Beim Versenden von HTML-E-Mails ist es empfehlenswert, eine Nur-Text-Version für Empfänger beizufügen, deren E‑Mail-Clients kein HTML unterstützen. Aspose.Email for Python via .NET bietet die AlternateView Klasse, um sowohl HTML- als auch Nur-Text-Inhalt in einer einzigen Nachricht zu integrieren, was Kompatibilität und Benutzererlebnis erhöht.

Das folgende Codebeispiel und die Schritte demonstrieren, wie man eine E‑Mail mit alternativem Textinhalt sendet:

  1. Erstellen Sie eine Instanz von dem MailMessage Klasse.
  2. Legen Sie die E‑Mail‑Adressen des Absenders und des Empfängers fest.
  3. Weisen Sie HTML-Inhalt zu dem html_body Eigenschaft und setzen is_body_html = True.
  4. Erstellen Sie eine Nur-Text-AlternateView mit create_alternate_view_from_string.
  5. Fügen Sie die alternative Ansicht zu dem alternate_views Sammlung der MailMessage.
  6. Erstellen und konfigurieren Sie die SmtpClient Instanz.
  7. Senden Sie die E‑Mail mit dem send Methode.

Wie man Massen‑E‑Mails sendet

Das Senden von Massen‑E‑Mails umfasst das gleichzeitige Versenden mehrerer Nachrichten – jeweils möglicherweise an unterschiedliche Empfänger adressiert. Aspose.Email stellt diese Fähigkeit mit dem SmtpClient Klasse.

Das folgende Codebeispiel demonstriert, wie man einen Stapel von E‑Mails auf einmal sendet:

  1. Erstellen Sie eine Instanz von dem SmtpClient Klasse und konfigurieren Sie Host, Port, Anmeldeinformationen und Sicherheitseinstellungen.
  2. Erstellen Sie mehrere MailMessage Instanzen – jeweils eine einzelne E‑Mail-Nachricht darstellend.
  3. Geben Sie Absender, Empfänger, Betreff und Nachrichteninhalt für jede E‑Mail an.
  4. Alle hinzufügen MailMessage Objekte an ein MailMessageCollection.
  5. Rufen Sie die send Methode des SmtpClient Klasse, die das MailMessageCollection als Argument.
import aspose.email as ae
from aspose.email.clients import SmtpClient, SecurityOptions
from aspose.email import MailMessage, MailMessageCollection

# Create individual email messages
message1 = MailMessage("from@gmail.com", "to1@gmail.com", "Bulk Email - Message 1", "Hello, this is message 1.")
message2 = MailMessage("from@gmail.com", "to2@gmail.com", "Bulk Email - Message 2", "Hello, this is message 2.")
message3 = MailMessage("from@gmail.com", "to3@gmail.com", "Bulk Email - Message 3", "Hello, this is message 3.")

# Add messages to a collection
many_messages = MailMessageCollection()
many_messages.append(message1)
many_messages.append(message2)
many_messages.append(message3)

# Configure SMTP client
client = SmtpClient("smtp.gmail.com", 995, "username", "password")
client.security_options = SecurityOptions.AUTO

# Send all messages in bulk
client.send(many_messages)

Sende E‑Mails mit Mehrfachverbindungsunterstützung

Aspose.Email for Python via .NET ermöglicht die Nutzung mehrerer gleichzeitiger Verbindungen beim Senden von E‑Mails über den SmtpClient Klasse. Diese Funktion kann die Leistung beim Senden großer Mengen von E‑Mails optimieren, indem die Arbeitslast auf mehrere Verbindungen verteilt wird. Beachten Sie jedoch, dass die Aktivierung des Mehrfachverbindungsmodus nicht in allen Szenarien eine Leistungssteigerung garantiert – sie hängt von der Serverkonfiguration und den Netzwerkbedingungen ab.

Wichtige Eigenschaften:

  • use_multi_connection: Aktiviert oder deaktiviert den Mehrfachverbindungsmodus für den SMTP-Client.

  • connections_quantity: Gibt die Anzahl der zu öffnenden Verbindungen an, wenn der Mehrfachverbindungsmodus aktiviert ist.

Das folgende Codebeispiel zeigt, wie man den Mehrfachverbindungsmodus aktiviert:

  1. Erstellen und konfigurieren Sie eine Instanz von SmtpClient.
  2. Legen Sie Serverdetails wie Host, Port, Benutzername, Passwort und Verschlüsselung fest.
  3. Aktivieren Sie den Mehrfachverbindungsmodus, indem Sie use_multi_connection.
  4. Geben Sie die Anzahl der Verbindungen an mit connections_quantity.
import aspose.email as ae

client = ae.clients.smtp.SmtpClient
client.host = "<HOST>"
client.username = "<USERNAME>"
client.password = "<PASSWORD>"
client.port = 587
client.supported_encryption = ae.clients.base.EncryptionProtocols.TLS
client.security_options = ae.clients.SecurityOptions.SSL_EXPLICIT

client.connections_quantity = 5
client.use_multi_connection = ae.clients.MultiConnectionMode.ENABLE
client.send(messages)

Sende TNEF-formatierte E‑Mails

Transport Neutral Encapsulation Format (TNEF) ist ein proprietäres E‑Mail-Format, das von Microsoft Outlook und Exchange verwendet wird, um umfangreiche Formatierungen, eingebettete Objekte und Sonderfunktionen wie Abstimmungs‑Buttons zu erhalten. Standard‑E‑Mail-Clients behalten diese Formatierung bei typischen MIME‑basierten Nachrichten möglicherweise nicht bei.

Aspose.Email for Python via .NET unterstützt das Senden von E‑Mails im TNEF-Format, um sicherzustellen, dass alle erweiterten Formatierungen und Funktionen erhalten bleiben. Dies wird erreicht, indem man die use_tnef Eigenschaft des SmtpClient Klasse.

Das folgende Codebeispiel und die Schritte zeigen, wie man eine TNEF‑E‑Mail sendet:

  1. Laden Sie eine vorhandene EML-Nachricht oder erstellen Sie eine mit der MailMessage Klasse.
  2. Legen Sie die Absender- und Empfängeradressen fest.
  3. Aktivieren Sie die TNEF-Formatierung, indem Sie use_tnef = True auf dem SmtpClient Instanz.
  4. Senden Sie die Nachricht mit dem send() Methode.

Sende Meeting‑Anfragen per E‑Mail

Microsoft Outlook und andere kalenderfähige E‑Mail-Clients wie IBM Lotus Notes ermöglichen es Benutzern, Termine direkt aus ihrem Posteingang zu verwalten. Wenn ein Benutzer eine Meeting‑Einladung erhält, kann er diese direkt im E‑Mail‑Client annehmen oder ablehnen. Mit Aspose.Email for Python via .NET können Entwickler diese Meeting‑Einladungen programmgesteuert erstellen und senden, wobei sie den iCalendar‑Standard (RFC 2445) einhalten.

Wie man Meeting‑Einladungen per E‑Mail sendet

Aspose.Email bietet integrierte Unterstützung zum Erstellen und Senden von iCalendar-Meeting-Anfragen als Teil einer E‑Mail. Diese Anfragen sind mit gängigen Kalender‑Clients kompatibel und ermöglichen Empfängern eine einfache Antwort auf Einladungen.

|iCalendar‑Besprechungsanfrage per E‑Mail gesendet| | :- | |todo:image_alt_text|

Der folgende Codeabschnitt zeigt, wie Sie Anfragen per E‑Mail senden:

  1. Erstellen Sie ein MailMessage Instanz.
  2. Geben Sie die Absender- und Empfänger‑E‑Mail‑Adressen an.
  3. Erstellen Sie ein Appointment Objekt mit Ort, Start-/Endzeit, Absender und Empfängern.
  4. Legen Sie die Zusammenfassung und Beschreibung des Termins fest.
  5. Fügen Sie den Termin der E‑Mail hinzu mit add_alternate_view().
  6. Senden Sie die E‑Mail mit dem SmtpClient.

iCalendar‑Unterstützung für IBM Lotus Notes

Aspose.Email verwendet das iCalendar-Format (RFC 2445), das sicherstellt, dass Ihre Meeting‑Anfragen mit Microsoft Outlook, IBM Lotus Notes und allen anderen Clients, die den Standard unterstützen, kompatibel sind. Der gleiche Vorgang kann unabhängig von der Plattform des Empfängers verwendet werden.

Weiterleiten von E‑Mails mit SMTP‑Client

Das Weiterleiten von E‑Mails ist eine gängige Aufgabe in der digitalen Kommunikation und wird oft verwendet, um empfangene Nachrichten mit anderen zu teilen. Aspose.Email for Python via .NET ermöglicht Entwicklern das programmgesteuerte Weiterleiten von E‑Mails mit der SmtpClient Klasse. Die forward‑Methode ermöglicht das Weiterleiten gespeicherter oder empfangener E‑Mail-Nachrichten an neue Empfänger, ohne den ursprünglichen Absender einzubeziehen.

Nachfolgend ein Codebeispiel, das zeigt, wie man eine E‑Mail mit der MailMessage Klasse:

EML-Dateien ohne Laden in MailMessage weiterleiten

Aspose.Email unterstützt außerdem das direkte Weiterleiten von .eml-Dateien, ohne sie zuerst in ein MailMessage Objekt. Dies ist besonders nützlich in Szenarien, in denen der Speicherverbrauch des Systems minimiert werden muss.

Das folgende Codebeispiel demonstriert, wie man eine EML-Datei direkt weiterleitet:

import aspose.email as ae

client = ae.clients.smtp.SmtpClient(host, smtp_port, username, password, ae.clients.SecurityOptions.AUTO)
file = open("test.eml", "rb")
client.forward(sender, recipients, file)