1. Producten
  2.   E-mail
  3.   Java
  4.   JavaMail
 
  

Free Java API for Sending Simple & HTML-based Emails

Open Source Java Email Processing API to Create and Send Text and HTML-based Email Messages with Attachments, Embedded Images, SMTP, IMAP, POP3 Protocol Support abd Advanced Security support.

Wat is JavaMail?

In de wereld van bedrijfsapplicaties en geautomatiseerde systemen is de mogelijkheid om e-mails programmatisch te verzenden en te ontvangen niet alleen een gemak—het is een noodzaak. Van het verzenden van wachtwoordreset‑e‑mails en orderbevestigingen tot het verwerken van binnenkomende support‑tickets, e‑mailintegratie is een kernfunctie. Voor Java‑ontwikkelaars is de hoeksteen van deze functionaliteit de robuuste, open‑source JavaMail API geweest. Deze uitgebreide productpagina verkent de JavaMail API, haar krachtige functies, en biedt praktische code‑voorbeelden om je op weg te helpen met e‑mailintegratie in je Java‑applicaties.

De JavaMail API is een volwassen, open‑source framework geleverd door Oracle (voorheen Sun Microsystems) dat een platform‑onafhankelijke en protocol‑onafhankelijke basis biedt voor het bouwen van mail‑ en messaging‑applicaties. Het is de standaard‑API voor het afhandelen van e‑mail in het Java‑ecosysteem. Het abstraheert de complexiteit van onderliggende e‑mailprotocollen zoals SMTP, POP3 en IMAP, zodat ontwikkelaars kunnen werken met een schone, object‑georiënteerde interface. Er zijn verschillende belangrijke functies onderdeel van de bibliotheek, zoals het maken en verzenden van HTML‑e‑mails, bijlagen toevoegen, inline‑afbeeldingen invoegen, multipart‑inhoud, sterke authenticatie‑ en beveiligingsondersteuning, map‑gebaseerde e‑mailondersteuning, betere zoek‑ en filtermogelijkheden, e‑mails lezen via SMTP, enzovoort.

Previous Next

Aan de slag met JavaMail

Allereerst moet je JDK 1.6 of hoger installeren. Voeg de volgende Maven‑afhankelijkheid toe aan je pom.xml.

Maven Dependency

<dependency>
  <groupId>com.sun.mail</groupId>s;
  <artifactId>javax.mail</artifactId>
  <version>1.6.2</version>
</dependency>

You can download the library directly from GitHub page.

E‑mailberichten verzenden via Java‑bibliotheek

De open‑source JavaMail‑bibliotheek biedt ondersteuning voor het maken en verzenden van zowel eenvoudige als HTML‑e‑mailberichten binnen Java‑applicaties. Software‑ontwikkelaars kunnen bestaande e‑mails lezen, bestanden en afbeeldingen als bijlagen toevoegen, e‑mail naar meerdere gebruikers verzenden, aangepaste headers toevoegen, en nog veel meer. Je moet verbindingsparameters definiëren zoals host, poort en vlaggen om authenticatie en TLS in te schakelen. Het volgende voorbeeld laat zien hoe je een eenvoudige platte‑tekst e‑mail verstuurt via een SMTP‑server (bijvoorbeeld Gmail) binnen een Java‑applicatie.

Hoe een eenvoudige platte‑tekst e‑mail te verzenden via een SMTP‑server met de Java API?


import java.util.Properties;
import javax.mail.*;
import javax.mail.internet.*;

public class SimpleEmailSender {

    public static void main(String[] args) {
        // Sender's and recipient's email ID
        String from = "your.email@gmail.com";
        String to = "recipient.email@example.com";
        
        // SMTP server configuration (for Gmail)
        String host = "smtp.gmail.com";
        final String username = "your.email@gmail.com";
        final String password = "your-app-password"; // Use an App Password for Gmail

        // Setup mail server properties
        Properties properties = new Properties();
        properties.put("mail.smtp.auth", "true");
        properties.put("mail.smtp.starttls.enable", "true"); // Use TLS
        properties.put("mail.smtp.host", host);
        properties.put("mail.smtp.port", "587");

        // Get the Session object and pass username and password
        Session session = Session.getInstance(properties, new javax.mail.Authenticator() {
            protected PasswordAuthentication getPasswordAuthentication() {
                return new PasswordAuthentication(username, password);
            }
        });

        try {
            // Create a default MimeMessage object
            Message message = new MimeMessage(session);
            
            // Set From: header field
            message.setFrom(new InternetAddress(from));
            
            // Set To: header field
            message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to));
            
            // Set Subject: header field
            message.setSubject("Hello from JavaMail API");
            
            // Set the actual message body
            message.setText("This is a test email sent programmatically using the JavaMail API.");

            // Send message
            Transport.send(message);
            System.out.println("Email sent successfully!");

        } catch (MessagingException e) {
            throw new RuntimeException(e);
        }
    }
}

E‑mail zoeken & filteren via Java

De open‑source JavaMail‑bibliotheek biedt volledige ondersteuning voor het zoeken van e‑mailberichten in een map op basis van verschillende criteria (afzender, onderwerp, datum, vlaggen) binnen Java‑applicaties. Dit is vooral nuttig bij het ontwikkelen van e‑mailclients of automatiseringen. Je kunt ook meerdere zoektermen (AND, OR, NOT) combineren via AndTerm, OrTerm, NotTerm. Het volgende voorbeeld laat zien hoe je berichten van een specifieke afzender zoekt met Java‑commando's.

Hoe berichten van een specifieke afzender te zoeken binnen Java‑apps?


Store store = session.getStore("imap");
store.connect("imap.example.com", username, password);

Folder inbox = store.getFolder("INBOX");
inbox.open(Folder.READ_ONLY);

// Search for messages from a specific sender
SearchTerm senderTerm = new FromStringTerm("alerts@example.com");
Message[] found = inbox.search(senderTerm);

for (Message m : found) {
    System.out.println("Subject: " + m.getSubject());
}

inbox.close(false);
store.close();

SMTP, IMAP, POP3‑protocolondersteuning

De open‑source JavaMail ondersteunt standaard de drie meest voorkomende e‑mailprotocollen, zoals SMTP (Simple Mail Transfer Protocol) voor het verzenden van berichten, POP3 (Post Office Protocol 3) voor eenvoudige e‑mailophaling en IMAP (Internet Message Access Protocol) voor meer geavanceerde e‑mailtoegang (mappen, gedeeltelijke ophalen). Bovendien ondersteunt het ook beveiligde varianten zoals SMTPS, POP3S, IMAPS, en kan het worden uitgebreid naar aangepaste providers.

Geavanceerde authenticatie en beveiliging via Java

De open‑source JavaMail ondersteunt beveiligde communicatie met e‑mailservers, wat cruciaal is in het huidige security‑bewuste klimaat. De bibliotheek ondersteunt TLS (Transport Layer Security) dat het communicatiekanaal tussen je applicatie en de mailserver versleutelt. Het ondersteunt ook SSL (Secure Sockets Layer), de voorganger van TLS, die eveneens kan worden gebruikt voor het tot stand brengen van een beveiligde verbinding. Daarnaast ondersteunt de bibliotheek standaard gebruikersnaam/wachtwoord‑authenticatie om verbinding te maken met servers die een login vereisen.

 Dutch