1. Tuotteet
  2.   Sähköposti
  3.   Java
  4.   JavaMail
 
  

Ilmainen Java-rajapinta yksinkertaisten ja HTML-pohjaisten sähköpostien lähettämiseen

Avoimen lähdekoodin Java-sähköpostin käsittelyn API tekstiviestien ja HTML-pohjaisten sähköpostiviestien luomiseen ja lähettämiseen liitteillä, upotetuilla kuvilla, SMTP-, IMAP- ja POP3-protokollatuella sekä kehittyneellä turvallisuustuesta.

Mikä on JavaMail?

Yritys­ohjelmistojen ja automaattisten järjestelmien maailmassa sähköpostien lähettämisen ja vastaanottamisen ohjelmallinen mahdollisuus ei ole pelkkä mukavuus—se on välttämättömyys. Salasanan nollauksista ja tilausvahvistuksista saapuvien tukipyyntöjen käsittelyyn, sähköpostiin integrointi on keskeinen ominaisuus. Java‑kehittäjille tämän toiminnallisuuden kulmakivenä on ollut vankka, avoimen lähdekoodin JavaMail‑API. Tämä kattava tuotesivu tutkii JavaMail‑API:a, sen tehokkaita ominaisuuksia ja tarjoaa käytännön koodiesimerkkejä, joiden avulla pääset alkuun sähköpostien integroinnissa Java‑sovelluksiisi.

JavaMail‑API on kypsä, avoimen lähdekoodin kehys, jonka on toimittanut Oracle (entinen Sun Microsystems). Se tarjoaa alusta‑ ja protokollariippumattoman kehyksen sähköposti‑ ja viestintäsovellusten rakentamiseen. Se on Java‑ekosysteemin standardi‑API sähköpostien käsittelyyn. API abstrahoi taustalla olevien sähköpostiprotokollien, kuten SMTP:n, POP3:n ja IMAP:n, monimutkaisuuden, jolloin kehittäjät voivat työskennellä selkeän oliopohjaisen käyttöliittymän kanssa. Kirjastossa on useita tärkeitä ominaisuuksia, kuten HTML‑sähköpostien luominen ja lähettäminen, liitteiden lisääminen, upotettujen kuvien sisällyttäminen, moniosainen sisältö, vahva todennus‑ ja turvallisuustuki, kansiopohjainen sähköpostituki, parempi hakujen ja suodatuksen tuki, sähköpostien lukeminen SMTP:n kautta, ja niin edelleen.

Previous Next

Aloittaminen JavaMailin kanssa

Ensinnäkin sinun on asennettava JDK 1.6 tai uudempi. Lisää seuraava Maven‑riippuvuus pom.xml‑tiedostoon.

Maven-riippuvuus

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

Voit ladata kirjaston suoraan GitHub-sivulta.

Sähköpostiviestin lähettäminen Java‑kirjaston avulla

Avoimen lähdekoodin JavaMail‑kirjasto sisältää tuen yksinkertaisten sekä HTML‑sähköpostiviestien luomiseen ja lähettämiseen Java‑sovelluksissa. Ohjelmistokehittäjät voivat lukea olemassa olevia sähköposteja, lisätä tiedostoja ja kuvia liitteiksi, lähettää sähköpostia useille vastaanottajille, lisätä mukautettuja otsakkeita ja paljon muuta. Sinun on määritettävä yhteysparametrit, kuten isäntä, portti ja liput todennuksen ja TLS:n käyttöönottoon. Seuraava esimerkki näyttää, miten lähettää perustekstisähköposti SMTP‑palvelimen (kuten Gmailin) kautta Java‑sovelluksessa.

Kuinka lähettää perustekstisähköposti SMTP‑palvelimen kautta Java‑rajapinnan avulla?


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);
        }
    }
}

Sähköpostien haku ja suodatus Java:ssa

Avoimen lähdekoodin JavaMail‑kirjasto tarjoaa täyden tuen sähköpostiviestien hakemiseen kansiosta eri kriteereillä (lähettäjä, aihe, päivämäärä, liput) Java‑sovelluksissa. Tämä on erityisen hyödyllistä sähköpostiasiakkaiden tai automaatioiden kehittämisessä. Voit myös yhdistää useita hakuehtoja (AND, OR, NOT) AndTerm‑, OrTerm‑ ja NotTerm‑luokkien avulla. Seuraava esimerkki näyttää, miten hakea viestejä tietystä lähettäjästä Java‑komentojen avulla.

Kuinka hakea viestejä tietystä lähettäjästä Java‑sovelluksissa?


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‑ ja POP3‑protokollatuki

Avoin JavaMail‑kirjasto tukee oletuksena kolmea yleisintä sähköpostiprotokollaa: SMTP (Simple Mail Transfer Protocol) viestien lähettämiseen, POP3 (Post Office Protocol 3) yksinkertaiseen viestien noutoon ja IMAP (Internet Message Access Protocol) kehittyneempään sähköpostien käyttöön (kansiot, osittainen haku). Lisäksi se tukee suojattuja versioita, kuten SMTPS, POP3S, IMAPS, ja sitä voidaan laajentaa omiin tarjoajiin.

Kehittynyt todennus ja turvallisuus Java:ssa

Avoin JavaMail tukee suojattua yhteyttä sähköpostipalvelimiin, mikä on kriittistä nykypäivän turvallisuustietoisuudessa. Kirjasto tukee TLS‑protokollaa (Transport Layer Security), joka salaa sovelluksen ja postipalvelimen välisen yhteyden. Se tukee myös SSL‑protokollaa (Secure Sockets Layer), joka on TLS:n edeltäjä ja jota käytetään edelleen suojattujen yhteyksien muodostamiseen. Lisäksi kirjasto tukee perinteistä käyttäjätunnus‑salasana‑todennusta palvelimille, jotka sitä vaativat.

 Suomen