Erstellen und Verwalten von E‑Mails

Erstellen einer neuen E‑Mail‑Nachricht

Die MailMessage Klasse repräsentiert eine E‑Mail‑Nachricht und ermöglicht Entwicklern, neue E‑Mail‑Nachrichten zu erstellen. Grundlegende E‑Mail‑Eigenschaften wie From, To, Subject und Body können einfach zur neu erstellten Mail‑Nachricht hinzugefügt werden. Ebenso können wir die Mail‑Nachricht in verschiedenen Formaten wie EML, MSG und MHTML speichern.

  • Erstellen Sie eine Instanz von dem MailMessage Klasse.
  • Setze die Eigenschaften der Mail‑Nachricht.
  • Speichere die Mail‑Nachricht in verschiedenen Formaten.

Das folgende Code‑Snippet zeigt, wie man eine neue E‑Mail mit verschiedenen Eigenschaften erstellt.

Mehrere Empfänger angeben

Die MailMessage Objekt repräsentiert eine E‑Mail‑Nachricht. Instanzen von MailMessage Klasse werden verwendet, um E‑Mail‑Nachrichten zu erstellen, die über den SmtpClient Klasse. Dieser Artikel zeigt, wie man mehr als eine E‑Mail‑Adresse angibt. E‑Mail‑Adressen können mittels MailMessage Klasse. Sie sind:

  • To – Empfängeradressen können im ‘To’-Feld angegeben werden. Die Empfänger im ‘To’-Feld bilden das primäre Publikum der Nachricht. Es können mehrere Empfängeradressen angegeben werden.
  • Cc - Cc steht für „Carbon Copy“ bzw. „Courtesy Copy“ und ermöglicht das Hinzufügen von Empfängern, die die E‑Mail sehen müssen, aber nicht unbedingt darauf reagieren sollen. Zum Beispiel Manager oder Teammitglieder, die über eine Konversation informiert sein müssen. Mit Aspose.Email können Cc‑Adressen im Code angegeben werden. So können automatisierte E‑Mails oder alle E‑Mails an eine bestimmte Adresse an relevantes Personal weitergeleitet werden.
  • Bcc - Bcc (Blind Carbon Copy) ermöglicht das Senden einer E‑Mail an einen Empfänger, der für andere Empfänger verborgen bleibt. Während ein CC in den E‑Mail‑Informationen erscheint, die die Hauptempfänger sehen, ist ein Bcc das nicht. Es dient der versteckten Benachrichtigung. 

Um mehrere E‑Mail‑Adressen in einer Nachricht anzugeben, führen Sie folgende Schritte aus:

  1. Erstellen Sie eine Instanz von dem MailMessage Klasse.
  2. Gib Absender und mehrere To-, Cc- und Bcc‑Adressen mit dem MailMessage Instanz.
  3. Erstellen Sie eine Instanz von dem SmtpClient Klasse und senden Sie die E‑Mail mit der Send‑Methode.

Das untenstehende Codebeispiel zeigt, wie mehrere To-, CC‑ und BCC‑Adressen angegeben werden können.

Festlegen von Absender‑ und Empfänger‑Anzeigenamen

Die untenstehenden Programmbeispiele zeigen, wie E‑Mail‑Adressen in einer Nachricht in freundliche Namen geändert werden. Ein freundlicher Name ist ein Name, der für Menschen leichter zu verstehen ist als die E‑Mail‑Adresse, zum Beispiel John Smith statt js346@domain.com. Beim Senden einer E‑Mail können wir einen freundlichen Namen einer E‑Mail‑Adresse zuordnen im MailMessage Klassenkonstruktor.

Um E‑Mail‑Adressen in einer Nachricht in freundliche Namen zu ändern, führen Sie folgende Schritte aus:

  • Erstellen Sie eine Instanz von dem MailMessage Klasse verwendest und E‑Mail‑Adressen in den Feldern To und From zusammen mit Anzeigenamen angibst.
  • Gib die Cc- und Bcc-E‑Mail‑Adressen zusammen mit Anzeigenamen an, indem du die MailMessage Klassen‑Konstruktor in der MailMessage Instanz.
  • Erstellen Sie eine Instanz von dem SmtpClient Klasse und senden Sie die E‑Mail mittels der Senden Methode.

Das folgende Code‑Snippet zeigt, wie Namen für E‑Mail‑Adressen angezeigt werden.

Festlegen des Betreffs einer E‑Mail

Die MailMessage Klasse ermöglicht es dir, die knappe Zusammenfassung des Nachrichteninhalts mit dem Betreff Eigenschaft. Das folgende Code‑Beispiel demonstriert, wie man eine E‑Mail erstellt und ihren Betreff setzt:

from aspose.email import MailMessage

# Create a new email message
message = MailMessage()

# Set the subject of the email
message.subject = "Meeting Reminder: Project Update"

# Set other email properties (optional)
message.from_address = "sender@example.com"
message.to.append("recipient@example.com")
message.body = "This is a reminder for the upcoming project update meeting."

# Print the email details
print(f"Subject: {message.subject}")
print(f"From: {message.from_address}")
print(f"To: {', '.join(message.to)}")
print(f"Body: {message.body}")

Festlegen des E‑Mail‑Bodys

Zusätzlich zum Betreff der Nachricht kann der E‑Mail‑Body mit derselben MailMessage Klasse. Eine E‑Mail kann mehrere Bodies haben. Es gibt zwei Arten von Mail‑Bodies in der Klasse:

  • HTML‑Body
  • Text‑Body

Zusätzlich zu HtmlBody und TextBody, Aspose.Email hat zwei weitere schreibgeschützte Eigenschaften, die den Mail‑Body betreffen:

  • IsBodyText: teilt dem Benutzer mit, ob der Body Text ist.
  • IsBodyHtml: gibt dem Benutzer an, ob der Body HTML oder Nur‑Text ist.

Dieser Artikel zeigt, wie man einfachen Text‑ oder HTML‑Body‑Text definiert, alternativen Text festlegt und den E‑Mail‑Body kodiert.

HTML‑Body festlegen

Html‑Body wird verwendet, um den HTML‑Inhalt eines Nachrichtenkörpers anzugeben. Der Html‑Body muss zwischen -Tags eingeschlossen werden. Das folgende Code‑Snippet zeigt, wie man den HTML‑Body setzt.

Alternativen Text festlegen

Verwenden Sie die AlternateView Klasse, um Kopien einer E‑Mail‑Nachricht in verschiedenen Formaten anzugeben. Zum Beispiel, wenn du eine Nachricht in HTML sendest, möchtest du vielleicht auch eine Nur‑Text‑Version bereitstellen, falls einige Empfänger E‑Mail‑Reader verwenden, die kein HTML darstellen können. Diese Klasse hat zwei Eigenschaften, linked_resources und base_uri, die verwendet werden, um URLs im Inhalt der E‑Mail aufzulösen.

  • LinkedResources ist eine Sammlung von LinkedResources‑Objekten. Beim Rendern werden URLs im E‑Mail‑Inhalt zuerst mit den URLs im Content‑Link jedes LinkedResources‑Objekts in der LinkedResources‑Sammlung abgeglichen und aufgelöst.
  • BaseUri wird vom Mail‑Reader verwendet, um relative URLs im Body aufzulösen, und auch um relative Content‑Link‑URLs in der LinkedResources‑Sammlung aufzulösen.

Das folgende Code‑Snippet zeigt, wie man alternativen Text festlegt.

MailMessage‑Funktionen

Die MailMessage Klasse stellt den Inhalt einer E‑Mail‑Nachricht dar. Instanzen der MailMessage Klassen werden verwendet, um eine E‑Mail‑Nachricht zu erstellen, die über einen SMTP‑Server zur Zustellung gesendet wird, indem SmtpClient Klasse. Dieser Artikel zeigt, wie man verwendet MailMessage Klassen‑Utility‑Funktionen zur Steuerung der folgenden E‑Mail‑Funktionen:

  • Datum und Uhrzeit – Durch die MailMessage Die Date‑Eigenschaft der Klasse ermöglicht das Abrufen oder Festlegen von Datum und Uhrzeit einer E‑Mail.
  • Nachrichtenpriorität – Die MailPriority Klasse, die Prioritätsstufen für das Senden einer E‑Mail‑Nachricht definiert. Sie kann niedrig, normal oder hoch sein. Die Priorität beeinflusst die Übertragungsgeschwindigkeit und Zustellung.
  • Nachrichtenempfindlichkeit – Die MailSensitivity Klasse, die fünf Empfindlichkeitsstufen definiert.
  • Zustellungsbenachrichtigung – Zustellungsbenachrichtigungen informieren Absender darüber, dass die gesendete E‑Mail im Posteingang des Empfängers zugestellt wurde.

Standardmäßig ist das Datum das tatsächliche Datum, an dem die Nachricht gesendet wurde, und die Zeit ist die Uhrzeit, zu der sie gesendet wurde, wie von Microsoft Outlook angezeigt. Der tatsächliche Zustellzeitpunkt der E‑Mail wird jedoch vom SMTP‑Server selbst im Nachrichtenkopf hinzugefügt. Zum Beispiel ist unten ein typischer Nachrichtenkopf gezeigt, bei dem „Date“ das Feld Date festlegt.

import aspose.email as ae
from aspose.email import MailMessage

# Create a new MailMessage instance
message = MailMessage()

# Add SMTP headers to the message
message.headers.add("Received", "from ip-123.56.99.216.dsl-cust.ca.inter.net ([216.99.56.123]) by Aspose.secureserver.net with MailEnable ESMTP; Thu, 22 Feb 2007 13:58:57 -0700")
message.headers.add("Return-Path", "<xyz@oikoscucine.it>")
message.headers.add("Received", "from 195.120.225.20 (HELO mail.oikoscucine.it) by aspose.com with esmtp (:1CYY+<LA*- *1WK@) id Q8,/O/-.N83@7-9M for abc@aspose.com; Thu, 22 Feb 2007 20:58:51 +0300")

# Set email details
message.from_address = "XYZ <xyz@oikoscucine.it>"
message.to.append("abc@aspose.com")
message.subject = "For ABC"
message.date = "Thu, 22 Feb 2007 20:58:51 +0300"
message.message_id = "<01c756c4$41b554d0$6c822ecf@dishonestyinsufferably>"
message.headers.add("MIME-Version", "1.0")
message.headers.add("Content-Type", "multipart/alternative; boundary=\"----=_NextPart_000_0006_01C7569A.58DF4CD0\"")
message.headers.add("X-Mailer", "Microsoft Office Outlook, Build 11.0.5510")
message.headers.add("X-MimeOLE", "Produced By Microsoft MimeOLE V6.00.2800.1106")
message.headers.add("Thread-Index", "Aca6Q:=ES0M(9-=(<.<1.<Q9@QE6CD==")
message.headers.add("X-Read", "1")

# Save the message as an EML file
message.save("output.eml", ae.EmlSaveOptions())

Das folgende Code‑Snippet zeigt, wie jede der oben besprochenen Funktionen verwendet werden kann.

import aspose.email as ae
from aspose.email import MailMessage, MailPriority, MailSensitivity
from datetime import datetime

# Create a new MailMessage instance
message = MailMessage("sender@gmail.com", "receiver@gmail.com", "Some subject", "Some body text")

# Set additional properties
message.date = datetime.now()
message.priority = MailPriority.HIGH
message.sensitivity = MailSensitivity.NORMAL
message.headers.add("X-Mailer", "Aspose.Email")

# Save the message as an EML file
message.save("output.eml", ae.EmlSaveOptions())

Anfordern einer Lesebestätigung

Die nachfolgenden Programmbeispiele zeigen, wie Sie eine Lesebestätigung anfordern können. Die MailMessage Klasse DeliveryNotificationOptions Die Enumerations‑Eigenschaft beschreibt die Optionen für Lieferbenachrichtigungen einer E‑Mail. Um nach dem Senden einer E‑Mail eine Lesebestätigung anzufordern, führen Sie die folgenden Schritte aus:

  1. Erstellen Sie eine Instanz von dem MailMessage Klasse.
  2. Gib Absender, Empfänger und HTML‑Body für die E‑Mail im MailMessage Instanz.
  3. Geben Sie das DeliveryNotificationOptions in anderen MailMessage Instanzen.
  4. Erstellen Sie eine Instanz von dem SmtpClient Klasse und sende die E‑Mail mit der Send‑Methode.

Lesebestätigungsanfragen werden nicht immer berücksichtigt, weil:

  • Ein Mail‑Client implementiert diese Funktion möglicherweise nicht.
  • Der Endbenutzer hat diese Funktion möglicherweise deaktiviert.
  • Der Endbenutzer kann entscheiden, keine zu senden.

Das folgende Code‑Snippet zeigt, wie man eine Lesebestätigung anfordert.

import aspose.email as ae
from aspose.email import MailMessage, SmtpClient, DeliveryNotificationOptions

# Create an instance of MailMessage class
message = MailMessage()

# Specify From, To, HtmlBody, and DeliveryNotificationOptions
message.from_address = "sender@sender.com"
message.to.append("receiver@receiver.com")
message.html_body = "<html><body>This is the Html body</body></html>"
message.delivery_notification_options = DeliveryNotificationOptions.ON_SUCCESS

message.headers.add("Return-Receipt-To", "sender@sender.com")
message.headers.add("Disposition-Notification-To", "sender@sender.com")

# Create an instance of SmtpClient class
client = SmtpClient()

# Specify your mailing host server, Username, Password, and Port
client.host = "smtp.server.com"
client.username = "Username"
client.password = "Password"
client.port = 25

try:
    # Client.send will send this message
    client.send(message)
    # Display 'Message sent' only if the message is sent successfully
    print("Message sent")
except Exception as ex:
    import traceback
    traceback.print_exc()

E‑Mail-Header festlegen

E‑Mail‑Header stellen einen Internetstandard dar und RFC definiert Header‑Felder, die in Internet‑E‑Mail‑Nachrichten enthalten sind. Ein E‑Mail‑Header kann mit der MailMessage‑Klasse angegeben werden. Häufige Header‑Typen sind in der HeaderType‑Klasse definiert. Es ist eine versiegelte Klasse, die wie eine normale Aufzählung funktioniert.

Normalerweise enthält ein E‑Mail-Header diese Felder:

  • To: Empfängeradressen können im To‑Feld angegeben werden. Diese Empfänger bilden das primäre Publikum der Nachricht. Es können mehrere Empfängeradressen angegeben werden.
  • From: Dieses Feld gibt die E‑Mail‑Adresse des Absenders an.
  • Cc: Ermöglicht das Senden einer Nachricht als „Carbon Copy“ bzw. „Courtesy Copy“. Der Empfänger muss in der Regel nicht antworten oder handeln. Typischerweise werden Aufsichtspersonen über CC benachrichtigt.
  • Bcc: Steht für Blind Carbon Copy, bezieht sich auf das Versenden einer Nachricht an mehrere Empfänger, sodass diese nicht die vollständige Empfänger­liste sehen. Es dient der versteckten Benachrichtigung.
  • ReplyTo: Dieses Header‑Feld gibt an, wohin der Absender Antworten erhalten möchte.
  • Subject: Titel, Überschrift, Betreff. Oft als Thread‑Indikator für Antworten oder Kommentare zu anderen Nachrichten verwendet.
  • Date: Dieser Header gibt ein Datum (und Uhrzeit) an. Normalerweise ist das das Datum, an dem die Nachricht verfasst und gesendet wurde.
  • XMailer: Informationen über die Client‑Software des Absenders. Beispiel: X‑Mailer: Aspose.Email. XMailer wird von Mail‑Clients verwendet. Verschiedene Mail‑Clients haben unterschiedliche XMailer‑Werte. Der XMailer‑Wert von MS Outlook ist Microsoft Office Outlook, Build 11.0.5510. Er wird vom Empfänger oder E‑Mail‑Reader ignoriert.

Normalerweise sieht ein E‑Mail-Header etwa so aus:


Reply-To: reply@reply.com

From: sender@sender.com

To: guangzhou@guangzhoo.com

Subject: test mail

Date: 6 Mar 2006 8:2:2 +0800

X-Mailer: Aspose.Email

Um einen E‑Mail-Header anzupassen, führen Sie die folgenden Schritte aus:

  • Erstellen Sie eine Instanz von dem MailMessage Klasse.
  • Gib To, From, CC, Bcc, ReplyTo, Subject, Date & XMailer mit einer Instanz von MailMessage.
  • Erstellen Sie eine Instanz von dem MimeHeader Klasse und gib den geheimen Header an.
  • Füge den geheimen Header hinzu zum MailMessage Instanz.

Das folgende Code‑Snippet zeigt, wie man E‑Mail‑Header setzt.

import aspose.email as ae
from aspose.email import MailMessage
from datetime import datetime

# Create an instance of MailMessage class
message = MailMessage()

# Specify email details
message.reply_to_list.append("reply@reply.com")
message.from_address = "sender@sender.com"
message.to.append("receiver1@receiver.com")
message.cc.append("receiver2@receiver.com")
message.bcc.append("receiver3@receiver.com")
message.subject = "test mail"
message.date = datetime(2006, 3, 6)
message.headers.add("X-Mailer", "Aspose.Email")

Das obige Code‑Snippet erzeugt einen E‑Mail‑Header im folgenden Format. Dies kann beobachtet werden, indem man die resultierende Datei "MsgHeaders.msg" in Microsoft Outlook öffnet und dann die Eigenschaften betrachtet.


Reply-To: reply@reply.com

From: sender@sender.com

To: receiver1@receiver.com

CC: receiver2@receiver.com

BCC: receiver3@receiver.com

Subject: test mail

Date: 6 Mar 2006 8:2:2 +0800

X-Mailer: Aspose.Email

secret-header: mystery

Header an bestimmter Position einfügen

Die Add Methode von HeadersCollection Klasse fügt den Header am Ende der Sammlung ein. Es kann jedoch manchmal notwendig sein, einen Header an einer bestimmten Stelle einzufügen. In diesem Fall ist die Add Methode wird nicht helfen. Um dies zu erreichen, verwende die Insert Methode des HeadersCollection. Wenn die Sammlung Header mit demselben Namen enthält, wird dieser Header vor den anderen Headern mit dem gleichen Namen eingefügt.

Das folgende Code‑Snippet zeigt, wie man einen Header an einer bestimmten Stelle einfügt.

# Insert a header into the MailMessage instance
message.headers.insert("Received", "Value")

Benutzerdefinierte Header zu E‑Mail hinzufügen

Das nachfolgende Programmbeispiel demonstriert, wie man mit der MailMessage Klasse.

# Add a header into the MailMessage instance
message.headers.add("secret-header", "mystery")

Das obige Code‑Snippet erzeugt einen E‑Mail‑Header im folgenden Format:

secret-header: mystery