Aanmaken en instellen van e-mailinhoud
Nieuw e-mailbericht maken
Aspose.Email voor Java stelt ontwikkelaars in staat om MIME (Multipurpose Internet Mail Extensions)-berichten vanaf nul te maken. De hoofdklasse voor dit doel in de Aspose.Email voor Java API is de MailMessage klasse. Dit onderwerp legt de stappen uit die nodig zijn om e-mailberichten te maken in de bestandsformaten EML, MSG en MTH met behulp van Aspose.Email voor Java.
Om een e-mailbericht vanaf nul te maken:
- Maak een instantie van de MailMessage-klasse.
- Stel het onderwerp van het bericht in met behulp van de setSubject() methode.
- Stel de berichtinhoud in met behulp van de setHtmlBody() methode.
- Stel de e-mailafzender in met behulp van de setFrom() methode.
- Stel de ontvanger in het TO-vak in met behulp van de getTo().add() methode.
- Stel de ontvanger in het CC-vak in met behulp van de getCC().add() methode.
- Roep de Save() methode om het berichtbestand op schijf op te slaan in MSG-, EML- en MHT-formaten.
Meerdere ontvangers specificeren
De MailMessage vertegenwoordigt een e-mailbericht. Instanties van de MailMessage-klasse worden gebruikt om e-mailberichten te bouwen die via een SMTP-server worden verzonden met behulp van de SmtpClient klasse. Dit onderwerp laat zien hoe u meer dan één e-mailadres kunt opgeven. E-mailadressen kunnen worden opgegeven met behulp van de MailMessage-klasse. De e-mailadressen die in de MailMessage-klasse worden gebruikt zijn:
- To - Ontvangeradressen kunnen worden opgegeven in het ‘Aan’-veld. De ontvangers in het ‘Aan’-veld vormen het primaire publiek van het bericht. Er kan meer dan één ontvangeradres zijn.
- Cc - CC staat voor "carbon copy" of "courtesy copy" en stelt u in staat e-mailontvangers toe te voegen die de e-mail moeten zien maar niet per se moeten reageren. Managers, bijvoorbeeld, of teamleden die op de hoogte moeten zijn van een gesprek. Met Aspose.Email kunnen CC-adressen in uw code worden opgegeven. Op deze manier kunnen geautomatiseerde e-mails, of alle e-mails naar een specifiek adres, worden gekopieerd naar relevante personen.
- Bcc - Bcc, blind carbon copy, stelt u in staat een e-mail te sturen naar een ontvanger die verborgen blijft voor andere ontvangers. Waar een CC verschijnt in de e-mailinformatie die de hoofdontvangers zien, verschijnt een Bcc niet. Het is bedoeld voor een verborgen melding.
Om meerdere e-mailadressen in een e-mailbericht op te geven, volg deze stappen:
- Maak een instantie van de MailMessage-klasse.
- Geef de From- en meerdere To-, Cc- en Bcc-adressen op met behulp van de MailMessage-instantie.
- Maak een instantie van de SmtpClient-klasse en verstuur de e-mail met de Send-methode.
Het onderstaande codevoorbeeld laat zien hoe meerdere Aan-, CC- en BCC-adressen kunnen worden opgegeven.
E-mailadressen wijzigen naar een vriendelijke naam
De programmeervoorbeelden hieronder laten zien hoe e-mailadressen te wijzigen naar vriendelijke namen in een e-mailbericht. Een vriendelijke naam is een naam die menselijker is dan het e-mailadres, bijvoorbeeld John Smith in plaats van js346@domain.com. Bij het verzenden van een e-mail kunnen we een vriendelijke naam koppelen aan een e-mailadres in de MailMessage klasseconstructor.
Om e-mailadressen te wijzigen in vriendelijke namen in een e-mailbericht, volg deze stappen:
- Maak een instantie van de MailMessage-klasse en geef e-mailadressen op in de Aan- en Van-velden, samen met vriendelijke namen.
- Geef de Cc- en Bcc-e-mailadressen op samen met vriendelijke namen door de constructor van de MailMessage-klasse aan te roepen in de MailMessage-instantie.
- Maak een instantie van de SmtpClient-klasse en verstuur de e-mail met de Send-methode.
Het volgende codefragment toont hoe u namen voor e-mailadressen weergeeft.
E-mailtekst instellen
De MailMessage klasse vertegenwoordigt een e-mailbericht. Instanties van de MailMessage-klasse worden gebruikt om e-mailberichten te bouwen die via een SMTP-server worden afgeleverd met behulp van de SmtpClient klasse. Een e-mailtekst kan worden opgegeven met de MailMessage-klasse. Een e-mailtekst kan worden opgegeven met behulp van setHtmlBody methode in MailMessage.
Naast HtmlBody, Aspose.Email heeft nog een methode gerelateerd aan de e-mailtekst:
- isBodyHtml: geeft de gebruiker aan of de tekst HTML of platte tekst is.
Dit onderwerp toont hoe u HTML-berichttekst definieert en alternatieve tekst instelt.
HTML-tekst instellen
HtmlBody wordt gebruikt om de HTML-inhoud van een berichttekst op te geven. HtmlBody moet tussen -tags staan. Het volgende codefragment laat zien hoe u een HTML-tekst instelt.
Alternatieve tekst instellen
Gebruik de AlternateView klasse om kopieën van een e-mailbericht in verschillende formaten op te geven. Bijvoorbeeld, als u een bericht in HTML verzendt, wilt u wellicht ook een platte-tekst versie aanbieden voor het geval sommige ontvangers e-mailclients gebruiken die geen HTML kunnen weergeven. Deze klasse heeft twee eigenschappen, LinkedResources en BaseUri, die worden gebruikt om URL’s in de e-mailinhoud te resolveren.
- LinkedResources is een verzameling van LinkedResources-objecten. Bij weergave worden URL’s in de e-mailinhoud eerst vergeleken met de URL’s in de Content Link van elk LinkedResources-object in de LinkedResources-collectie, en vervolgens opgelost.
- BaseUri wordt door de e-maillezer gebruikt om relatieve URL’s in de tekst te resolveren, en ook om relatieve Content Link-URL’s te resolveren in de LinkedResources-collectie.
Het volgende codefragment laat zien hoe u alternatieve tekst instelt.
E-mailtekstcodering specificeren
Het contenttype definieert het e-mailinhoudformaat: de tekencodering. Bijvoorbeeld, een aantal veelvoorkomende tekencoderingen die worden geleverd door java.nio.Charset zijn:
- US-ASCII - Zeven-bit ASCII, ook bekend als ISO646-US, ook wel het basis-Latin blok van de Unicode-tekenset
- ISO-8859-1 - ISO Latijns alfabet nr. 1, ook bekend als ISO-LATIN-1
- UTF-8 - Acht-bit UCS-Transformatieschema
- UTF-16BE - Zestien-bit UCS-Transformatieschema, big-endian bytevolgorde
- UTF-16LE - Zestien-bit UCS-Transformatieschema, little-endian bytevolgorde
- UTF-16 - Zestien-bit UCS-Transformatieschema, bytevolgorde geïdentificeerd door een optioneel byte-order mark
Aspose.Email gebruikt de BodyEncoding eigenschap van de MailMessage-klasse om de codering van de e-mailtekst op te geven. Om de tekst van een e-mailbericht te coderen, volg de onderstaande stappen:
- Maak een instantie van de MailMessage-klasse.
- Geef de afzender, ontvanger en HTML-tekst van de e-mail op in de MailMessage-instantie.
- Geef de waarde van de BodyEncoding-eigenschap op.
- Maak een instantie van de SmtpClient klasse en verzend de e-mail met de Send-methode.
MailMessage-functies
De MailMessage klasse vertegenwoordigt de inhoud van een e-mailbericht. Instanties van de MailMessage-klasse worden gebruikt om een e-mailbericht te bouwen dat via een SMTP-server wordt afgeleverd met behulp van de SmtpClient klasse. Dit artikel toont hoe u de hulpfuncties van de MailMessage-klasse kunt gebruiken om de volgende e-mailfunctionaliteiten te beheren:
- Datum en tijd - Via de MailMessage-klasse setDate methode waarmee we datum en tijd van een e-mail instellen.
- Berichtprioriteit - De MailPriority klasse specificeert prioriteitsniveaus voor het verzenden van een e-mailbericht. Het kan laag, normaal of hoog zijn. Prioriteit beïnvloedt de transmissiesnelheid en bezorging.
- Berichtgevoeligheid - De MailSensitivity klasse specificeert vijf gevoeligheidsniveaus.
- Bezorgingsmelding - Bezorgingsmeldingen laten afzenders weten dat de e-mail die ze hebben verzonden is afgeleverd in de inbox van de ontvanger.
Standaard is de datum de werkelijke datum waarop het bericht werd verzonden, en de tijd is het moment van verzending, zoals weergegeven door Microsoft Outlook. De echte e-mailbezorgtijd wordt echter door de SMTP-server zelf toegevoegd in de e-mailheader. Bijvoorbeeld, hieronder is een veelvoorkomende e-mailheader, waarbij het veld Date is ingesteld met MailMessage.setDate.
Het onderstaande codefragment illustreert hoe elk van de hierboven besproken functies kan worden gebruikt.
Aanvragen van een leesbevestiging
De programmeervoorbeelden hieronder laten zien hoe u een leesbevestiging kunt aanvragen. De MailMessage‑klasse DeliveryNotificationOptions Enumeratie‑eigenschap beschrijft de opties voor afleveringsmeldingen voor een e-mail. Om een leesbevestiging aan te vragen na het verzenden van een e-mail, volg deze stappen:
- Maak een instantie van de MailMessage-klasse.
- Geef de afzender, ontvanger en HTML-tekst van de e-mail op in de MailMessage-instantie.
- Geef de DeliveryNotificationOptions op in andere MailMessage-instanties.
- Maak een instantie van de SmtpClient-klasse en verstuur de e-mail met de Send-methode.
Leesbevestigingsverzoeken worden mogelijk niet altijd ingewilligd omdat:
- Een e-mailclient implementeert die functionaliteit mogelijk niet.
- De eindgebruiker kan die functionaliteit uitgeschakeld hebben.
- De eindgebruiker kan ervoor kiezen er geen te verzenden.
Het volgende codefragment laat zien hoe u een leesbevestiging kunt aanvragen.
E‑mailheaders instellen
E‑mailheaders vormen een internetstandaard en RFC definiëren headervelden die zijn opgenomen in internet‑e‑mailberichten. Een e‑mailheader kan worden opgegeven met behulp van de MailMessage klasse. Veelvoorkomende headertypen worden gedefinieerd in de HeaderType klasse. Het is een sealed class die werkt als een normale enumeratie.
Normaal bevat een e-mailheader deze velden:
- To: Ontvangeradressen kunnen worden opgegeven in het To‑veld. De ontvangers in het To‑veld vormen het primaire publiek van het bericht. Er kan meer dan één ontvangeradres zijn.
- From: Dit veld toont het e‑mailadres van de afzender van het bericht.
- Cc: Maakt het mogelijk een bericht te verzenden als een "Carbon Copy" of "Courtesy Copy". Dat wil zeggen, de ontvanger wordt niet verwacht te antwoorden of te handelen. Meestal wordt leidinggevend personeel geïnformeerd via CC.
- Bcc: Staat voor Blind Carbon Copy, verwijst naar de praktijk om een bericht naar meerdere ontvangers te sturen waarbij de ontvangers niet de volledige lijst van geadresseerden zien. Het dient voor verborgen notificatie.
- ReplyTo: Dit headerveld geeft aan waar de afzender de antwoorden naartoe wil laten gaan.
- Subject: Titel, onderwerp, kop. Wordt vaak gebruikt als thread‑indicator voor berichten die reageren op of commentaar geven op andere berichten.
- Date: Deze header geeft een datum (en tijd) op. Gewoonlijk is dit de datum waarop het bericht is opgesteld en verzonden.
- XMailer: Informatie over de clientsoftware van de afzender. Voorbeeld: X‑Mailer: Aspose.Email. XMailer wordt gebruikt door e‑mailclients. Verschillende e‑mailclients hebben verschillende XMailer‑waarden. De XMailer‑waarde van MS Outlook is Microsoft Office Outlook, Build 11.0.5510. Deze wordt genegeerd door de e‑mailontvanger of -lezer.
Normaal ziet een e-mailheader er ongeveer zo uit:
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
Om een e-mailheader aan te passen, volg deze stappen:
- Maak een instantie van de MailMessage klasse.
- Geef To, From, CC, Bcc, ReplyTo, Subject, Date & XMailer op met een instantie van de MailMessage‑klasse.
- Maak een instantie van de MimeHeader klasse en geef de geheime header op.
- Voeg de geheime header toe aan de MailMessage‑instantie.
In de onderstaande code hebben we een e-mailheader aangepast.
Het bovenstaande codefragment produceert een e‑mailheader in het volgende formaat. Dit kan worden geobserveerd door het bestand MsgHeaders.msg te openen in Microsoft Outlook en vervolgens de eigenschappen te bekijken.
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 invoegen op specifieke locatie
De Toevoegen methode van HeadersCollection voegt de header toe aan het einde van de collectie. Het kan echter soms nodig zijn om een header op een specifieke locatie in te voegen. In dat geval helpt de Add‑methode niet. Gebruik hiervoor de Insert methode van de HeadersCollection. Als de collectie headers met dezelfde naam bevat, wordt deze header vóór de andere headers met dezelfde naam ingevoegd. Hieronder staat de signature van de Insert‑methode en voorbeeldcode voor gebruik.
Method Signature
HeaderCollection.insert(String name, String value)
Aangepaste headers aan e‑mail toevoegen
De onderstaande programmeervoorbeelden demonstreren hoe u een aangepaste header in een e‑mailbericht kunt specificeren. Een e‑mailheader kan worden opgegeven met de MailMessage‑klasse. Volg deze stappen om een aangepaste header in een e‑mailbericht op te geven:
- Maak een instantie van de MailMessage-klasse.
- Geef de to‑, from‑ en subject‑waarden op met de MailMessage‑instantie.
- Voeg de geheime header toe aan de MailMessage‑instantie.
- Maak een instantie van de SmtpClient-klasse en verstuur de e-mail met de Send-methode.
Het volgende codefragment laat zien hoe u aangepaste headers aan een e‑mail kunt toevoegen.
E‑mails ondertekenen met DKIM
Aspose.Email maakt het mogelijk e‑mails te ondertekenen met DKIM (DomainKeys Identified Mail). Hiermee kan een organisatie verantwoordelijkheid nemen voor een bericht dat in transit is (over DKIM). DKIM voegt een digitale handtekening toe aan de e‑mailheader die door ontvangers kan worden gevalideerd. De openbare sleutel van de afzender stelt de ontvanger in staat te verifiëren dat de handtekening overeenkomt met de inhoud van het bericht. De MailMessage‑klasse dKIMSign methode wordt gebruikt om de cryptografische en handtekeninginformatie in te stellen voor het ondertekenen van het bericht. Het volgende codefragment laat zien hoe u e‑mails kunt ondertekenen met DKIM.
Mail Merge uitvoeren
Mail merges helpen u bij het maken en verzenden van een batch soortgelijke e‑mailberichten. De kern van de e‑mails is hetzelfde, maar de inhoud kan worden gepersonaliseerd. Typisch worden de contactgegevens van de ontvanger (voornaam, achternaam, bedrijf, enz.) gebruikt om de e‑mail te personaliseren.
|
| | :- | |Figuur: Illustratie van hoe een mail merge werkt|
Om een mailmerge uit te voeren met Aspose.Email, volg de volgende stappen:
- Maak een functie met naam handtekening
- Maak een instantie van de MailMessage klasse.
- Specificeer de afzender, ontvanger, onderwerp en inhoud.
- Maak een handtekening voor het einde van de e‑mail.
- Maak een instantie van de TemplateRoutine klasse en geef het de MailMessage instantie.
- Neem handtekening in de TemplateRoutine instantie.
- Maak een instantie van de DataTable klasse.
- Voeg de kolommen Receipt, FirstName en LastName toe als gegevensbronnen in de DataTable‑klasse
- Maak een instantie van de DataRow klasse
- Specificeer het ontvangstadres, voor- en achternaam in het DataRow‑object
- Maak een instantie van de MailMessageCollection klasse
- Specificeer de TemplateRoutine en DataTable‑instanties in de MailMessageCollection instantie.
- Maak een instantie van de SmtpClient klasse en specificeer de server, poort, gebruikersnaam en wachtwoord
- E‑mails verzenden met de SmtpClient klasse BulkSendAsync-methode
De onderstaande code stuurt een e‑mail naar één persoon vanaf drie anderen.