– To znowu ja. I znów mam dla ciebie małą niespodziankę.
„Dzisiaj nauczę Cię, jak wysyłać wiadomości e-mail za pomocą języka Java ” .
„Zacznijmy od dobrych wiadomości: Java ma natywną bibliotekę do pracy z pocztą e-mail ” .
„Złą wiadomością jest to, że ta biblioteka jest częścią Java EE , a nie Java SE ”.
„ Java EE to rozszerzona wersja JavaSE , która zawiera klasy potrzebne do bardziej inteligentnych aplikacji. Na przykład aplikacji do pracy z pocztą elektroniczną”.
– Rozumiem, więc co można w takim razie zrobić?
„Cóż, sugeruję po prostu pobrać tę bibliotekę i to wszystko”.
„Rozsądnie używaj IntelliJ IDEA”.
„Utwórz klasę i dodaj biblioteki javax.mail.* i javax.mail.internet.* do sekcji importu.
„Następnie naciśnij Alt + Enter i pozwól IDEA zrobić wszystko za Ciebie:
„Oto jak wygląda oferta pobrania brakujących bibliotek:”
„Oto jak wygląda okno pobierania:”
„Lub możesz go pobrać tutaj ”
„Pobrano. Co dalej?”
„Musisz przejść do ustawień projektu (Open Module Settings) do sekcji Biblioteki i dodać pliki JAR z pobranego archiwum.”
"Zrobione."
„Czy poniższe linie nie są już czerwone?”
import javax.mail.internet.MimeMessage;
import javax.mail.internet.*;
"Tak."
– Świetnie, w takim razie kontynuujmy.
„Wysłanie wiadomości e-mail składa się z trzech kroków”.
1) Nawiąż połączenie z serwerem pocztowym, który będzie używany do wysłania wiadomości e-mail
2) Utwórz wiadomość e-mail i, jeśli to konieczne, dodaj załączniki
3) Wyślij wiadomość e-mail.
"Zacznijmy od początku."
„Aby wysłać wiadomość e-mail w Javie, musisz najpierw nawiązać połączenie z serwerem pocztowym”.
„Najlepiej, jeśli masz już konto e-mail na serwerze. W obawie przed spamem nowoczesne serwery pocztowe nie chcą wysyłać wiadomości od anonimowych użytkowników ” .
„Możesz połączyć się z serwerem za pomocą jednego wywołania metody javax.mail.Session.getDefaultInstance:”
Properties props = new Properties();
// Here we need to load data into the props object
Session session = Session.getDefaultInstance(props);
„Ale musisz przekazać ustawienia serwera pocztowego do tej metody”.
„Na przykład możesz utworzyć plik Mail.properties i wypełnić go żądanymi ustawieniami, na przykład coś takiego:”
mail.transport.protocol=smtp
mail.host=smtp.gmail.com
mail.smtp.auth=true
mail.user=arnold@gmail.com
mail.password=strong
„Najważniejsze jest określenie protokołu i hosta, ale możesz potrzebować dodatkowych ustawień, w zależności od tego, jak działa serwer pocztowy”.
„Możesz po prostu dodać te dane do obiektu Właściwości bezpośrednio w swoim kodzie Java”.
"Na przykład:"
Properties props = new Properties();
props.put("mail.transport.protocol", "smtps");
props.put("mail.smtps.host", “smtp.gmail.com”);
props.put("mail.smtps.auth", "true");
props.put("mail.smtp.sendpartial", "true");
Session session = Session.getDefaultInstance(props);
„Świetnie, mamy sesję. Teraz utwórzmy wiadomość e-mail”.
„Jest to łatwiejsze niż się wydaje na pierwszy rzut oka. Na przykład:”
// Create a message
MimeMessage message = new MimeMessage(session);
// Set the message subject
message.setSubject("Test email!");
// Add the message text
message.setText("Asta la vista, baby!");
// Specify the recipient
message.addRecipient(Message.RecipientType.TO, new InternetAddress("stalone@gmail.com"));
// Specify the delivery date
message.setSentDate(new Date());
„Jako odbiorcę mogę podać dowolny adres e-mail?”
„Tak. Co więcej, jako nadawcę możesz podać dowolny adres e-mail”.
„Świetnie! Wezmę to pod uwagę”.
„Teraz musimy tylko wysłać tę wiadomość”.
„Najpierw logujemy się na serwerze, a następnie wysyłamy naszą wiadomość. Tylko dwie linijki kodu:”
// Username and password for a Gmail account
String userLogin = “arnold@gmail.com”;
String userPassword = “strong”;
// Sign in on the server:
Transport transport = session.getTransport();
transport.connect("smtp.gmail.com", 465, userLogin, userPassword);
// Send a message:
transport.sendMessage(message, message.getRecipients(Message.RecipientType.TO));
„Jakie to interesujące! Muszę spróbować”.
„Jeśli zastanawiasz się, jak wysłać wiadomość z załącznikami, możesz o tym przeczytać tutaj ”.
„Jeśli chcesz dowiedzieć się, jak odbierać pocztę, zajrzyj tutaj ”.
„Jasna cholera. Jakie przydatne linki!”
„Tak, zamierzam teraz stworzyć własnego klienta poczty. Super!”
— Dzięki, Ellie!
GO TO FULL VERSION