Erstellen und Festlegen von E‑Mail‑Inhalten
Neue E‑Mail‑Nachricht erstellen
Aspose.Email für Java ermöglicht Entwicklern das Erstellen von MIME (Multipurpose Internet Mail Extensions) Nachrichten von Grund auf. Die Hauptklasse zu diesem Zweck in der Aspose.Email‑Java‑API ist die MailMessage Klasse. Dieses Thema erklärt die erforderlichen Schritte zum Erstellen von E‑Mail‑Nachrichten im EML-, MSG- und MTH‑Dateiformat mit Aspose.Email für Java.
Um eine E‑Mail‑Nachricht von Grund auf neu zu erstellen:
- Erstellen Sie eine Instanz der MailMessage‑Klasse.
- Setzen Sie den Betreff der Nachricht mit der setSubject() Methode.
- Setzen Sie den Nachrichtentext mit der setHtmlBody() Methode.
- Setzen Sie den E‑Mail‑Absender mit der setFrom() Methode.
- Setzen Sie den Empfänger im TO‑Feld, indem Sie die getTo().add() Methode.
- Setzen Sie den Empfänger im CC‑Feld, indem Sie die getCC().add() Methode.
- Rufen Sie die Save() Methode zum Speichern der Nachrichtendatei auf einer Festplatte im MSG-, EML- und MHT‑Format.
Mehrere Empfänger angeben
Die MailMessage stellt eine E‑Mail‑Nachricht dar. Instanzen der MailMessage‑Klasse werden verwendet, um E‑Mail‑Nachrichten zu erstellen, die über einen SMTP‑Server übertragen werden mit der SmtpClient Klasse. Dieses Thema zeigt, wie man mehr als eine E‑Mail‑Adresse angibt. E‑Mail‑Adressen können mit der MailMessage‑Klasse angegeben werden. Die in der MailMessage‑Klasse verwendeten E‑Mail‑Adressen sind:
- To - Empfängeradressen können im Feld „To“ angegeben werden. Die Empfänger im Feld „To“ bilden das primäre Publikum der Nachricht. Es kann mehr als eine Empfängeradresse geben.
- 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:
- Erstellen Sie eine Instanz der MailMessage‑Klasse.
- Geben Sie den From‑ sowie mehrere To-, Cc- und Bcc‑Adressen mit der MailMessage‑Instanz an.
- Erstellen Sie eine Instanz der 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.
Ändern von E‑Mail‑Adressen zu einem freundlichen Namen
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 der MailMessage‑Klasse und geben Sie E‑Mail‑Adressen im To‑ und From‑Feld zusammen mit freundlichen Namen an.
- Geben Sie die Cc‑ und Bcc‑E‑Mail‑Adressen zusammen mit freundlichen Namen an, indem Sie den Konstruktor der MailMessage‑Klasse in der MailMessage‑Instanz aufrufen.
- Erstellen Sie eine Instanz der SmtpClient‑Klasse und senden Sie die E‑Mail mit der Send‑Methode.
Das folgende Code‑Snippet zeigt, wie Namen für E‑Mail‑Adressen angezeigt werden.
Mail‑Body festlegen
Die MailMessage Klasse stellt eine E‑Mail‑Nachricht dar. Instanzen der MailMessage‑Klasse werden verwendet, um E‑Mail‑Nachrichten zu erstellen, die über einen SMTP‑Server zugestellt werden mit der SmtpClient Klasse. Ein Mail‑Body kann mit der MailMessage‑Klasse angegeben werden. Ein E‑Mail‑Body kann spezifiziert werden mittels setHtmlBody Methode in MailMessage.
Zusätzlich zu HtmlBody, Aspose.Email hat eine weitere Methode im Zusammenhang mit dem Mail‑Body:
- isBodyHtml: gibt dem Benutzer an, ob der Body HTML oder Nur‑Text ist.
Dieses Thema zeigt, wie man HTML‑Body‑Text definiert und alternativen Text festlegt.
HTML‑Body festlegen
HtmlBody wird verwendet, um den HTML‑Inhalt eines Nachrichtenkörpers anzugeben. HtmlBody 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 unterschiedlichen Formaten anzugeben. Wenn Sie beispielsweise eine Nachricht in HTML senden, möchten Sie eventuell auch eine Nur‑Text‑Version bereitstellen, falls einige Empfänger E‑Mail‑Programme verwenden, die HTML nicht darstellen können. Diese Klasse hat zwei Eigenschaften, LinkedResources und BaseUri, 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 zunächst 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.
Festlegen der Mail‑Body‑Kodierung
Der Content‑Type definiert das E‑Mail‑Inhaltsformat: den Zeichensatz. Beispielsweise sind einige gängige Zeichensätze, die in java.nio.Charset bereitgestellt werden:
- US‑ASCII – 7‑Bit‑ASCII, auch bekannt als ISO646‑US, bzw. der Basic‑Latin‑Block des Unicode‑Zeichensatzes
- ISO-8859-1 – ISO Latin Alphabet Nr. 1, auch bekannt als ISO‑LATIN‑1
- UTF-8 – 8‑bit UCS‑Transformationsformat
- UTF-16BE – 16‑bit UCS‑Transformationsformat, big‑endian Byte‑Reihenfolge
- UTF-16LE – 16‑bit UCS‑Transformationsformat, little‑endian Byte‑Reihenfolge
- UTF-16 – 16‑bit UCS‑Transformationsformat, Byte‑Reihenfolge durch ein optionales Byte‑Order‑Mark (BOM) gekennzeichnet
Aspose.Email verwendet das BodyEncoding Eigenschaft der MailMessage‑Klasse, um die Kodierung des E‑Mail‑Bodys festzulegen. Um den Body einer E‑Mail‑Nachricht zu kodieren, führen Sie die untenstehenden Schritte aus:
- Erstellen Sie eine Instanz der MailMessage‑Klasse.
- Geben Sie Absender, Empfänger und HTML‑Body der E‑Mail in der MailMessage‑Instanz an.
- Geben Sie den Wert der BodyEncoding‑Eigenschaft an.
- Erstellen Sie eine Instanz von dem SmtpClient Klasse und senden Sie die E‑Mail mit der Send‑Methode.
MailMessage‑Funktionen
Die MailMessage Klasse, die den Inhalt einer E‑Mail‑Nachricht darstellt. Instanzen der MailMessage‑Klasse werden verwendet, um eine E‑Mail‑Nachricht zu erstellen, die über einen SMTP‑Server zugestellt wird mit der SmtpClient Klasse. Dieser Artikel zeigt, wie man die Dienstprogrammfunktionen der MailMessage‑Klasse zur Steuerung der folgenden E‑Mail‑Funktionen verwendet:
- Datum und Uhrzeit – Über die MailMessage‑Klasse setDate Methode, mit der wir Datum und Uhrzeit einer E‑Mail setzen.
- 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 Versanddatum der Nachricht und die Uhrzeit die Versandzeit, wie von Microsoft Outlook angezeigt. Die tatsächliche Zustellzeit wird jedoch vom SMTP‑Server selbst im Mail‑Header hinzugefügt. Zum Beispiel, unten ein gängiger Mail‑Header, bei dem das Feld Date über MailMessage.setDate gesetzt wurde.
Das folgende Code‑Snippet zeigt, wie jede der oben besprochenen Funktionen verwendet werden kann.
Anfordern einer Lesebestätigung
Die nachstehenden Programmbeispiele zeigen, wie Sie eine Lesebestätigung anfordern können. Die MailMessage‑Klasse DeliveryNotificationOptions Die Aufzählungseigenschaft beschreibt die Optionen für Zustellungsbenachrichtigungen für eine E‑Mail. Um nach dem Senden einer E‑Mail eine Lesebestätigung anzufordern, führen Sie die folgenden Schritte aus:
- Erstellen Sie eine Instanz der MailMessage‑Klasse.
- Geben Sie Absender, Empfänger und HTML‑Body der E‑Mail in der MailMessage‑Instanz an.
- Geben Sie die DeliveryNotificationOptions in anderen MailMessage‑Instanzen an.
- Erstellen Sie eine Instanz der SmtpClient‑Klasse und senden Sie 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.
E‑Mail-Header festlegen
E‑Mail-Header entsprechen einem Internet‑Standard und RFC definiert Header‑Felder, die in Internet‑E‑Mail-Nachrichten enthalten sind. Ein E‑Mail-Header kann mit dem MailMessage Klasse. Gängige Header‑Typen sind definiert in der HeaderType Klasse. 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. Die Empfänger im To‑Feld sind das primäre Publikum der Nachricht. Es können mehrere Empfängeradressen angegeben werden.
- From: Dieses Feld zeigt die E‑Mail-Adresse des Absenders der Nachricht an.
- Cc: Ermöglicht das Senden einer Nachricht als „Carbon Copy“ bzw. „Courtesy Copy“. Der Empfänger muss nicht antworten oder handeln. In der Regel werden Aufsichtspersonen per CC benachrichtigt.
- Bcc: Steht für Blind Carbon Copy und bezieht sich auf die Praxis, eine Nachricht an mehrere Empfänger zu senden, wobei die Empfänger die vollständige Empfängerliste nicht sehen. Es dient der versteckten Benachrichtigung.
- ReplyTo: Dieses Header‑Feld gibt an, wohin der Absender Antworten erhalten möchte.
- Subject: Titel, Überschrift, Betreff. Wird häufig als Thread‑Indikator für Nachrichten verwendet, die auf andere Nachrichten antworten oder sie kommentieren.
- Date: Dieser Header gibt ein Datum (und eine Uhrzeit) an. Normalerweise ist dies das Datum, an dem die Nachricht verfasst und gesendet wurde.
- XMailer: Information ü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-Programm 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.
- Geben Sie To, From, CC, Bcc, ReplyTo, Subject, Date & XMailer mit einer Instanz der MailMessage‑Klasse an.
- Erstellen Sie eine Instanz von dem MimeHeader Klasse und gib den geheimen Header an.
- Fügen Sie den geheimen Header zur MailMessage‑Instanz hinzu.
Im nachstehenden Code haben wir einen E‑Mail-Header angepasst.
Das obige Code‑Snippet erzeugt einen E‑Mail-Header im folgenden Format. Dies kann beobachtet werden, indem man die Datei MsgHeaders.msg in Microsoft Outlook öffnet und deren Eigenschaften ansieht.
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 der HeadersCollection fügt den Header am Ende der Sammlung ein. Es kann jedoch vorkommen, dass ein Header an einer bestimmten Position eingefügt werden muss. In diesem Fall hilft die Add‑Methode nicht. Verwenden Sie dazu die Insert Methode der HeadersCollection. Wenn die Sammlung Header mit demselben Namen enthält, wird dieser Header vor den anderen Headern mit demselben Namen eingefügt. Nachfolgend ist die Signatur der Insert‑Methode sowie Beispielcode zur Verwendung.
Method Signature
HeaderCollection.insert(String name, String value)
Benutzerdefinierte Header zu E‑Mail hinzufügen
Die nachstehenden Programmbeispiele zeigen, wie ein benutzerdefinierter Header in einer E‑Mail‑Nachricht angegeben wird. Ein E‑Mail‑Header kann mit der MailMessage‑Klasse angegeben werden. Folgen Sie diesen Schritten, um einen benutzerdefinierten Header festzulegen:
- Erstellen Sie eine Instanz der MailMessage‑Klasse.
- Geben Sie die Werte für To, From und Subject mit der MailMessage‑Instanz an.
- Fügen Sie den geheimen Header in die MailMessage‑Instanz ein.
- Erstellen Sie eine Instanz der SmtpClient‑Klasse und senden Sie die E‑Mail mit der Send‑Methode.
Das folgende Code‑Snippet zeigt, wie Sie benutzerdefinierte Header zu einer E‑Mail hinzufügen.
E‑Mails mit DKIM signieren
Aspose.Email ermöglicht das Signieren von E‑Mails mit DKIM (DomainKeys Identified Mail). Dies erlaubt einer Organisation, Verantwortung für eine Nachricht im Transit zu übernehmen (über DKIM). DKIM fügt den Headern der E‑Mail-Nachricht eine digitale Signatur hinzu, die von Empfängern validiert werden kann. Der öffentliche Schlüssel des Absenders ermöglicht dem Empfänger zu prüfen, ob die Signatur mit dem Nachrichteninhalt übereinstimmt. Die MailMessage‑Klasse DKIMSign Methode wird verwendet, um kryptografische und Signaturinformationen zum Signieren der Nachricht festzulegen. Das folgende Code‑Snippet zeigt, wie Sie E‑Mails mit DKIM signieren.
Durchführen eines Seriendrucks
Seriendrucke helfen Ihnen, eine Charge ähnlicher E‑Mail‑Nachrichten zu erstellen und zu senden. Der Kern der E‑Mails ist gleich, aber der Inhalt kann personalisiert werden. Üblicherweise werden die Kontaktdaten des Empfängers (Vorname, Nachname, Unternehmen usw.) verwendet, um die E‑Mail zu personalisieren.
|
| | :- | |Abbildung: Illustration, wie ein Seriendruck funktioniert|
Um einen Seriendruck mit Aspose.Email durchzuführen, befolgen Sie die folgenden Schritte:
- Erstellen Sie eine Funktion mit dem Namen signature
- Erstellen Sie eine Instanz von dem MailMessage Klasse.
- Geben Sie Absender, Empfänger, Betreff und Inhalt an.
- Erstellen Sie eine Signatur für das Ende der E‑Mail.
- Erstellen Sie eine Instanz von dem TemplateRoutine Klasse und übergeben Sie ihr die MailMessage Instanz.
- Nehmen Sie die Signatur in der TemplateRoutine Instanz.
- Erstellen Sie eine Instanz von dem DataTable Klasse.
- Fügen Sie die Spalten Receipt, FirstName und LastName als Datenquellen in der DataTable‑Klasse hinzu
- Erstellen Sie eine Instanz von dem DataRow Klasse
- Geben Sie die Empfangsadresse sowie Vor- und Nachnamen im DataRow‑Objekt an
- Erstellen Sie eine Instanz von dem MailMessageCollection Klasse
- Geben Sie das TemplateRoutine und DataTable‑Instanzen in der MailMessageCollection Instanz.
- Erstellen Sie eine Instanz von dem SmtpClient Klasse und geben Sie Server, Port, Benutzername und Passwort an
- Senden Sie E‑Mails mit der SmtpClient Klasse BulkSendAsync‑Methode
Der nachstehende Code sendet eine E‑Mail an eine Person von drei anderen.