E-mails verzenden met Java

1. Overzicht

In deze korte tutorial gaan we kijken naar het verzenden van een e-mail met en zonder bijlagen - met behulp van de Java-kernmailbibliotheek.

2. Projectopstelling en afhankelijkheid

Voor dit artikel gebruiken we een eenvoudig op Maven gebaseerd project met een afhankelijkheid van de Java-e-mailbibliotheek:

 javax.mail mail 1.5.0-b01 

De laatste versie vind je hier.

3. Verzenden van platte tekst en een HTML-e-mail

Eerst moeten we de bibliotheek configureren met de inloggegevens van onze e-mailserviceprovider. Vervolgens maken we een Sessie dat zal worden gebruikt bij het samenstellen van ons bericht voor verzending.

De configuratie is via een Java Eigendommen voorwerp:

Eigenschappen prop = nieuwe eigenschappen (); prop.put ("mail.smtp.auth", true); prop.put ("mail.smtp.starttls.enable", "true"); prop.put ("mail.smtp.host", "smtp.mailtrap.io"); prop.put ("mail.smtp.port", "25"); prop.put ("mail.smtp.ssl.trust", "smtp.mailtrap.io");

In de bovenstaande eigenschappenconfiguratie hebben we de e-mailhost geconfigureerd als Mailtrap en gebruiken we ook de poort die door de service wordt geboden.

Laten we nu verder gaan door een sessie te maken met onze gebruikersnaam en wachtwoord:

Session session = Session.getInstance (prop, nieuwe Authenticator () {@Override beschermde PasswordAuthentication getPasswordAuthentication () {retourneer nieuwe PasswordAuthentication (gebruikersnaam, wachtwoord);}});

De gebruikersnaam en het wachtwoord worden gegeven door de e-mailserviceprovider naast de host- en poortparameters.

Nu we een mail hebben Sessie object, laten we een MimeBericht voor het versturen:

Berichtbericht = nieuwe MimeMessage (sessie); message.setFrom (new InternetAddress ("[email protected]")); message.setRecipients (Message.RecipientType.TO, InternetAddress.parse ("[email protected]")); message.setSubject ("E-mailonderwerp"); String msg = "Dit is mijn eerste e-mail met JavaMailer"; MimeBodyPart mimeBodyPart = nieuwe MimeBodyPart (); mimeBodyPart.setContent (msg, "text / html"); Multipart multipart = nieuwe MimeMultipart (); multipart.addBodyPart (mimeBodyPart); message.setContent (multipart); Transport.send (bericht);

In het bovenstaande fragment hebben we eerst een bericht instantie met de nodige eigenschappen - naar, van en onderwerp. Gevolgd door een mimeBodyPartdie een codering heeft van tekst / html, aangezien ons bericht is opgemaakt in HTML.

Het volgende dat we hebben gedaan, is een instantie van MimeMultipart object dat we kunnen gebruiken om het mimeBodyPart wij hebben gemaakt.

Ten slotte stellen we de meerdelig object als de inhoud van onze bericht en gebruik de sturen()van Vervoer bezwaar maken om de e-mail te verzenden.

We kunnen dus zeggen dat de mimeBodyPartis opgenomen in de meerdelig dat is opgenomen in de bericht. Vandaar dat een meerdelig kan er meer dan één bevatten mimeBodyPart.

Dit wordt de focus van de volgende sectie.

4. E-mail met bijlage verzenden

Om vervolgens een bijlage te verzenden, hoeven we alleen nog een bijlage te maken MimeBodyParten voeg de bestanden eraan toe:

MimeBodyPart attachmentBodyPart = nieuwe MimeBodyPart (); attachmentBodyPart.attachFile (nieuw bestand ("pad / naar / bestand"));

We kunnen dan het nieuwe lichaamsdeel toevoegen aan de MimeMultipartobject dat we eerder hebben gemaakt:

multipart.addBodyPart (attachmentBodyPart);

Dat is alles wat we hoeven te doen.

Nogmaals, we hebben de meerdelig instantie als de inhoud van de bericht object en tot slot gebruiken we de sturen() om de e-mail te verzenden.

5. Conclusie

Tot slot hebben we gezien hoe we de native Java-e-mailbibliotheek kunnen gebruiken om e-mails te verzenden, zelfs met een bijlage.

Zoals altijd is de volledige broncode beschikbaar op Github.