logo

Wysyłanie wiadomości e-mail w Javie

  1. Wysyłanie wiadomości e-mail przy użyciu interfejsu API JavaMail
  2. Kroki wysyłania wiadomości e-mail przy użyciu interfejsu API JavaMail
    1. Pobierz obiekt sesji
    2. Skomponuj wiadomość
    3. wyślij wiadomość
  3. Prosty przykład wysyłania wiadomości e-mail przy użyciu JavaMail API
  4. Przykład wysyłania wiadomości e-mail przy użyciu API JavaMail poprzez serwer SMTP dostarczony przez dostawcę hosta

Istnieją różne sposoby wysyłania wiadomości e-mail przy użyciu interfejsu JavaMail API. W tym celu musisz posiadać serwer SMTP odpowiedzialny za wysyłanie maili.

Aby uzyskać serwer SMTP, możesz użyć jednej z następujących technik:

  • Zainstaluj i używaj dowolnego serwera SMTP, takiego jak serwer Postcast, serwer Apache James, serwer cmmail itp. (lub)
  • Skorzystaj z serwera SMTP dostarczonego przez dostawcę hosta, np.: mój serwer SMTP to mail.javatpoint.com (lub)
  • Skorzystaj z serwera SMTP dostarczonego przez inne firmy m.in. Gmaila itp.

Tutaj nauczymy się trzech podejść do wysyłania wiadomości e-mail za pomocą interfejsu API Javamail. Powinniśmy jednak nauczyć się podstawowych kroków wysyłania wiadomości e-mail z aplikacji Java.


Kroki wysyłania wiadomości e-mail przy użyciu interfejsu API JavaMail

Aby wysłać wiadomość e-mail za pomocą JavaMail, wykonaj trzy kroki. Są one następujące:

    Pobierz obiekt sesjiktóry przechowuje wszystkie informacje o hoście, takie jak nazwa hosta, nazwa użytkownika, hasło itp.zredaguj wiadomość wyślij wiadomość


1) Pobierz obiekt sesji

The Klasa javax.mail.Session udostępnia dwie metody pobierania obiektu sesji: metodę Session.getDefaultInstance() i metodę Session.getInstance(). Możesz użyć dowolnej metody, aby uzyskać obiekt sesji.

Metoda klasy Session

NIE.metodaOpis
1publiczna sesja statyczna getDefaultInstance (rekwizyty właściwości)zwraca sesję domyślną.
2publiczna sesja statyczna getDefaultInstance (właściwości, uwierzytelnianie modułu uwierzytelniającego)zwraca sesję domyślną.
3publiczna sesja statyczna getInstance (rekwizyty właściwości)zwraca nową sesję.
4public static Session getInstance (właściwości, uwierzytelnianie modułu uwierzytelniającego)zwraca nową sesję.

Przykład metody getDefaultInstance().

 Properties properties=new Properties(); //fill all the information like host name etc. Session session=Session.getDefaultInstance(properties,null); 

Przykład metody getInstance().

 Properties properties=new Properties(); //fill all the information like host name etc. Session session=Session.getInstance(properties,null); 

2) Skomponuj wiadomość

Klasa javax.mail.Message udostępnia metody tworzenia wiadomości. Jest to jednak klasa abstrakcyjna, dlatego najczęściej używana jest jej podklasa, klasa javax.mail.internet.MimeMessage.
Aby utworzyć wiadomość należy przekazać obiekt sesji w konstruktorze klasy MimeMessage. Na przykład:
 MimeMessage message=new MimeMessage(session); 
Teraz obiekt wiadomości został utworzony, ale do przechowywania informacji w tym obiekcie klasa MimeMessage udostępnia wiele metod. Zobaczmy metody udostępniane przez klasę MimeMessage:

Powszechnie używane metody klasy MimeMessage

NIE.metodaOpis
1public void setFrom (adres adresu)służy do ustawiania pola nagłówka from.
2public void addRecipient(Message.RecipientType typ, adres adresowy)służy do dodania podanego adresu do typu odbiorcy.
3public void addRecipients(typ wiadomości.RecipientType, adres [] adresy)służy do dodania podanych adresów do typu odbiorcy.
4public void setSubject (podmiot ciągu)służy do ustawiania pola nagłówka tematu.
5public void setText (wiadomość tekstowa typu String)służy do ustawiania tekstu jako treści wiadomości przy użyciu typu tekstowego/zwykłego MIME.
6public void setContent(Wiadomość obiektu, String contentType)służy do ustawienia treści jako treści wiadomości przy użyciu danego typu MIME.

Przykład tworzenia wiadomości:

 MimeMessage message=new MimeMessage(session); message.setFrom(new InternetAddress('[email protected]')); message.addRecipient(Message.RecipientType.To, new InternetAddress('[email protected]')); message.setHeader('Hi, everyone'); message.setText('Hi, This mail is to inform you...'); 

3) Wyślij wiadomość

Klasa javax.mail.Transport udostępnia metodę wysyłania wiadomości.

Powszechnie stosowane metody klasy Transport

NIE.metodaOpis
1publiczna statyczna nieważna wysyłka (wiadomość)jest używany, wyślij wiadomość.
2publiczne statyczne nieważne wysyłanie (wiadomość, adres [] adres)służy do wysyłania wiadomości na podane adresy.

Przykład wysłania wiadomości:

 Transport.send(message); 

Prosty przykład wysyłania wiadomości e-mail w Javie

pobierz te pliki jar lub przejdź do witryny Oracle, aby pobrać najnowszą wersję.
W tym przykładzie nauczymy się jak wysyłać e-maile poprzez serwer SMTP zainstalowany na komputerze m.in. Serwer postcast, serwer Apache James, serwer Cmail itp. Jeśli chcesz wysyłać wiadomości e-mail przy użyciu serwera SMTP dostarczonego przez dostawcę usług hostingowych, zobacz przykład po tym.
Aby wysłać wiadomość e-mail za pomocą interfejsu API JavaMail, musisz załadować dwa pliki jar:
poczta.jar
aktywacja.jar
 import java.util.*; import javax.mail.*; import javax.mail.internet.*; import javax.activation.*; public class SendEmail { public static void main(String [] args){ String to = '[email protected]';//change accordingly String from = '[email protected]';change accordingly String host = 'localhost';//or IP address //Get the session object Properties properties = System.getProperties(); properties.setProperty('mail.smtp.host', host); Session session = Session.getDefaultInstance(properties); //compose the message try{ MimeMessage message = new MimeMessage(session); message.setFrom(new InternetAddress(from)); message.addRecipient(Message.RecipientType.TO,new InternetAddress(to)); message.setSubject('Ping'); message.setText('Hello, this is example of sending email '); // Send message Transport.send(message); System.out.println('message sent successfully....'); }catch (MessagingException mex) {mex.printStackTrace();} } } 
pobierz ten przykład, aby wysłać e-mail

W tym przykładzie nauczymy się jak wysyłać e-maile poprzez serwer SMTP zainstalowany na komputerze m.in. Serwer postcast, serwer Apache James, serwer Cmail itp. Jeśli chcesz wysyłać wiadomości e-mail przy użyciu serwera SMTP dostarczonego przez dostawcę usług hostingowych, zobacz przykład po tym.

Aby uruchomić ten przykład, musisz załadować dwa pliki jar. Istnieją 4 sposoby załadowania pliku jar. Jednym ze sposobów jest ustawienie ścieżki klasy. Zobaczmy, jak uruchomić ten przykład:

Załaduj plik jarc:> ustaw ścieżkę klasy=poczta.jar;aktywacja.jar;.;
skompiluj plik źródłowyc:> javac Wyślij e-mail.java
napędzany przezc:> Java Wyślij e-mail

Przykład wysyłania wiadomości e-mail w języku Java poprzez serwer SMTP dostarczony przez dostawcę hosta

pobierz te pliki jar lub przejdź do witryny Oracle, aby pobrać najnowszą wersję.
Jeśli korzystasz z serwera SMTP dostarczonego przez dostawcę usług hostingowych, np. mail.javatpoint.com , musisz uwierzytelnić nazwę użytkownika i hasło. Do uwierzytelnienia hasła używana jest klasa javax.mail.PasswordAuthentication.
Jeśli wysyłasz wiadomość e-mail za pomocą interfejsu API JavaMail, załaduj dwa pliki jar:
poczta.jar
aktywacja.jar
 import java.util.Properties; import javax.mail.*; import javax.mail.internet.*; public class SendMailBySite { public static void main(String[] args) { String host='mail.javatpoint.com'; final String user='[email protected]';//change accordingly final String password='xxxxx';//change accordingly String to='[email protected]';//change accordingly //Get the session object Properties props = new Properties(); props.put('mail.smtp.host',host); props.put('mail.smtp.auth', 'true'); Session session = Session.getDefaultInstance(props, new javax.mail.Authenticator() { protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(user,password); } }); //Compose the message try { MimeMessage message = new MimeMessage(session); message.setFrom(new InternetAddress(user)); message.addRecipient(Message.RecipientType.TO,new InternetAddress(to)); message.setSubject('javatpoint'); message.setText('This is simple program of sending email using JavaMail API'); //send the message Transport.send(message); System.out.println('message sent successfully...'); } catch (MessagingException e) {e.printStackTrace();} } } 
pobierz ten przykład, aby wysłać e-mail

Jak widać w powyższym przykładzie, identyfikator użytkownika i hasło muszą zostać uwierzytelnione. Jak pokazuje ten program, możesz łatwo wysyłać e-maile. Zmień odpowiednio nazwę użytkownika i hasło. Zobaczmy jak uruchomić go jeszcze raz prostą techniką:

Załaduj plik jarc:> ustaw ścieżkę klasy=poczta.jar;aktywacja.jar;.;
skompiluj plik źródłowyc:> javac SendMailBySite.java
napędzany przezc:> Java SendMailBySite