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 sesji któ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. metoda Opis
1 publiczna sesja statyczna getDefaultInstance (rekwizyty właściwości) zwraca sesję domyślną.
2 publiczna sesja statyczna getDefaultInstance (właściwości, uwierzytelnianie modułu uwierzytelniającego) zwraca sesję domyślną.
3 publiczna sesja statyczna getInstance (rekwizyty właściwości) zwraca nową sesję.
4 public 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. metoda Opis
1 public void setFrom (adres adresu) służy do ustawiania pola nagłówka from.
2 public void addRecipient(Message.RecipientType typ, adres adresowy) służy do dodania podanego adresu do typu odbiorcy.
3 public void addRecipients(typ wiadomości.RecipientType, adres [] adresy) służy do dodania podanych adresów do typu odbiorcy.
4 public void setSubject (podmiot ciągu) służy do ustawiania pola nagłówka tematu.
5 public 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.
6 public 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. metoda Opis
1 publiczna statyczna nieważna wysyłka (wiadomość) jest używany, wyślij wiadomość.
2 publiczne 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 jar c:> ustaw ścieżkę klasy=poczta.jar;aktywacja.jar;.;
skompiluj plik źródłowy c:> javac Wyślij e-mail.java
napędzany przez c:> 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 jar c:> ustaw ścieżkę klasy=poczta.jar;aktywacja.jar;.;
skompiluj plik źródłowy c:> javac SendMailBySite.java
napędzany przez c:> Java SendMailBySite