- Wysyłanie wiadomości e-mail przy użyciu interfejsu API JavaMail
- Kroki wysyłania wiadomości e-mail przy użyciu interfejsu API JavaMail
- Pobierz obiekt sesji
- Skomponuj wiadomość
- wyślij wiadomość
- Prosty przykład wysyłania wiadomości e-mail przy użyciu JavaMail API
- 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
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:pobierz te pliki jar lub przejdź do witryny Oracle, aby pobrać najnowszą wersję. |
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-mailW 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
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:pobierz te pliki jar lub przejdź do witryny Oracle, aby pobrać najnowszą wersję. |
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-mailJak 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 |