Automatyzacja poczty e-mail stała się popularna, szczególnie wśród marketerów. Umożliwia im automatyczne wysyłanie gotowych e-maili do docelowych odbiorców w zaplanowanym czasie.

Kod Java do wysyłania wiadomości e-mail

Wysyłanie wiadomości e-mail za pomocą Java

W tym artykule wyjaśniamy, jak napisać kod do wysyłania wiadomości e-mail w Javie. Zobaczymy, jak programowo tworzyć i wysyłać wiadomości e-mail zawierające zwykły tekst lub treść HTML. Dodatkowo pokażemy jak masowo wysyłać e-maile i wysyłać zapisane e-maile z dysku za pomocą Java.

W tym artykule omówione zostaną punkty podane poniżej:

Biblioteka Java do wysyłania e-maili

Będziemy używać biblioteki poczty e-mail Java, która umożliwia wdrożenie logiki biznesowej do zarządzania wiadomościami e-mail bez znajomości programowania sieci lub specyfikacji formatu. Bibliotekę Java do wysyłania wiadomości e-mail można zainstalować bezpośrednio, korzystając z konfiguracji Mavena, jak podano poniżej:

<repository>
	<id>ConholdateJavaAPI</id>
	<name>Conholdate Java API</name>
	<url>https://releases.conholdate.com/java/repo</url>
</repository>        
<dependency>
	<groupId>com.conholdate</groupId>
	<artifactId>conholdate-total</artifactId>
	<version>23.6</version>
	<type>pom</type>
</dependency>

Konfiguracje dotyczące innych frameworków Java można znaleźć na stronie releases.conholdate.com.

Jak napisać kod, aby utworzyć i wysłać wiadomość e-mail w Javie

Biblioteka poczty e-mail Java wysyła wiadomości e-mail w celu dostarczenia przez serwer SMTP. Nadawca, odbiorcy, temat i treść wiadomości są określane za pomocą obiektów String. W tej sekcji omówimy, jak napisać przykładowy kod w Javie, aby wysyłać wiadomości e-mail zawierające zwykły tekst i treść HTML.

Kod Java do wysyłania wiadomości e-mail ze zwykłym tekstem

Poniżej przedstawiono kroki tworzenia i wysyłania wiadomości e-mail za pomocą protokołu SMTP:

  1. Utwórz obiekt klasy MailMessage.
  2. Określ temat, treść, adresy nadawcy i odbiorcy.
  3. Utwórz obiekt klasy SmtpClient.
  4. Ustaw hosta, port, nazwę użytkownika, hasło i opcje zabezpieczeń.
  5. Wywołaj metodę SmtpClient.send(MailMessage arg), aby wysłać wiadomość e-mail.

Poniższy przykładowy kod pokazuje, jak utworzyć i wysłać wiadomość e-mail zawierającą zwykły tekst:

// Zadeklaruj msg jako instancję MailMessage
MailMessage msg = new MailMessage();

// Ustaw pole Od i Do oraz treść zwykłego tekstu
msg.setFrom(MailAddress.to_MailAddress("sender@sender.com"));
msg.getTo().add("receiver@receiver.com");
msg.setBody("This is a Plain Text Body");

// Utwórz instancję klasy SmtpClient
SmtpClient client = new SmtpClient();

// Podaj serwer hosta poczty, nazwę użytkownika, hasło, numer portu i opcję zabezpieczeń
client.setHost("mail.server.com");
client.setUsername("username");
client.setPassword("password");
client.setPort(587);
client.setSecurityOptions(SecurityOptions.SSLExplicit);

try {
    // Client.Send wyśle tę wiadomość
    client.send(msg);
    System.out.println("Message sent");
} catch (Exception ex) {
    System.err.println(ex);
    client.close();
    client.dispose();
}
client.close();
client.dispose();  

Wysyłanie wiadomości e-mail z treścią HTML

Poniżej przedstawiono kroki wysyłania wiadomości e-mail z treścią HTML:

  1. Utwórz obiekt klasy MailMessage.
  2. Określ temat, treść, adresy nadawcy i odbiorcy.
  3. Ustaw treść wiadomości e-mail za pomocą metody MailMessage.setHtmlBody(String value).
  4. Utwórz obiekt klasy SmtpClient.
  5. Ustaw hosta, port, nazwę użytkownika, hasło i opcje zabezpieczeń.
  6. Wywołaj metodę SmtpClient.send(MailMessage arg), aby wysłać wiadomość e-mail.

Przykładowy kod poniżej pokazuje, jak wysłać wiadomość e-mail z treścią HTML.

// Zadeklaruj msg jako instancję MailMessage
MailMessage msg = new MailMessage();

// Użyj właściwości MailMessage, takich jak określenie nadawcy, odbiorcy, wiadomości i HtmlBody
 msg.setFrom(MailAddress.to_MailAddress("newcustomeronnet@gmail.com"));
 msg.setTo(MailAddressCollection.to_MailAddressCollection("asposetest123@gmail.com"));
 msg.setSubject("Test subject");
 msg.setHtmlBody("<html><body>This is the HTML body</body></html>");

// Utwórz instancję klasy SmtpClient
SmtpClient client = new SmtpClient();

// Podaj serwer hosta poczty, nazwę użytkownika, hasło, numer portu i opcję zabezpieczeń
client.setHost("mail.server.com");
client.setUsername("username");
client.setPassword("password");
client.setPort(587);
client.setSecurityOptions(SecurityOptions.SSLExplicit);

try {
    // Client.Send wyśle tę wiadomość
    client.send(msg);
    System.out.println("Message sent");
} catch (Exception ex) {
    System.err.println(ex);
    client.close();
    client.dispose();
}
client.close();
client.dispose();  

Wysyłanie zapisanych e-maili z dysku w Javie

Biblioteka poczty e-mail Java umożliwia ładowanie plików EML(Outlook Express Electronic Mail) z dysku i wysyłanie ich za pośrednictwem protokołu SMTP.

Poniżej opisano procedurę wysyłania zapisanych wiadomości e-mail z dysku:

  1. Utwórz obiekt klasy MailMessage, korzystając z metody MailMessage.load(String path).
  2. Utwórz obiekt klasy SmtpClient.
  3. Ustaw hosta, port, nazwę użytkownika, hasło i opcje zabezpieczeń.
  4. Wywołaj metodę SmtpClient.send(MailMessage arg), aby wysłać wiadomość e-mail.

Poniższy przykładowy kod ilustruje sposób wysyłania przechowywanych wiadomości e-mail z dysku w języku Java.

// Załaduj plik EML do klasy MailMessage
MailMessage message = MailMessage.load(dataDir + "test.eml");

// Utwórz instancję klasy SmtpClient
SmtpClient client = new SmtpClient();

// Podaj serwer hosta poczty, nazwę użytkownika, hasło, numer portu i opcję zabezpieczeń
client.setHost("mail.server.com");
client.setUsername("username");
client.setPassword("password");
client.setPort(587);
client.setSecurityOptions(SecurityOptions.SSLExplicit);

try {
    // Client.Send wyśle tę wiadomość
    client.send(msg);
    System.out.println("Message sent");
} catch (Exception ex) {
    System.err.println(ex);
    client.close();
    client.dispose();
}
client.close();
client.dispose();  

Kod Java do zbiorczego wysyłania wiadomości e-mail

Poniżej przedstawiono kroki pisania kodu Java do zbiorczego wysyłania wiadomości e-mail:

  1. Utwórz wiele obiektów klasy MailMessage i określ ich niezbędne parametry lub właściwości.
  2. Utwórz obiekt klasy MailMessageCollection.
  3. Dodaj obiekty wiadomości e-mail (utworzone w kroku 1) do kolekcji przy użyciu metody MailMessageCollection.addItem().
  4. Utwórz obiekt klasy SmtpClient. and set the host, port, username, and password.
  5. Wyślij e-mail za pomocą metody SmtpClient.send(MailMessageCollection arg).

Poniższy przykładowy kod ilustruje sposób zbiorczego wysyłania wiadomości e-mail przy użyciu języka Java.

// Utwórz SmtpClient jako klienta i określ serwer, port, nazwę użytkownika i hasło
SmtpClient client = new SmtpClient("mail.server.com", 25, "Username", "Password");

// Utwórz instancje klasy MailMessage i określ Do, Od, Temat i Wiadomość
MailMessage message1 = new MailMessage("msg1@from.com", "msg1@to.com", "Subject1", "message1, how are you?");
MailMessage message2 = new MailMessage("msg1@from.com", "msg2@to.com", "Subject2", "message2, how are you?");
MailMessage message3 = new MailMessage("msg1@from.com", "msg3@to.com", "Subject3", "message3, how are you?");

// Utwórz instancję klasy MailMessageCollection i dodaj obiekty MailMessage
MailMessageCollection manyMsg = new MailMessageCollection();
manyMsg.addItem(message1);
manyMsg.addItem(message2);
manyMsg.addItem(message3);

try {
    // Wyślij wiadomość zbiorczo
    client.send(manyMsg);
    System.out.println("Message sent");
} catch (Exception ex) {
    System.err.println(ex);
    client.close();
    client.dispose();
}
client.close();
client.dispose();  

Zdobądź bezpłatną licencję

Możesz uzyskać bezpłatną licencję tymczasową, aby wypróbować interfejs API bez ograniczeń ewaluacyjnych.

Podsumowując

W tym artykule zdobyłeś wiedzę o tym, jak napisać kod do wysyłania wiadomości e-mail w języku Java przy użyciu biblioteki Java do wysyłania wiadomości e-mail. Początkowo nauczyłeś się programowo wysyłać wiadomości e-mail zawierające zwykły tekst lub treść HTML. Następnie zobaczyłeś, jak masowo wysyłać e-maile i wysyłać zapisane e-maile z dysku za pomocą Java.

Możesz odwiedzić dokumentację, aby poznać inne funkcje.

Na koniec sugerujemy zaglądanie na stronę conholdate.com, aby otrzymywać regularne aktualizacje.

Zadać pytanie

Możesz przekazać nam swoje pytania lub wątpliwości na naszym forum.

Zobacz też