Javaamail API - wysyłanie e -maila za pomocą Java z Gmaila SMTP

Javaamail API - wysyłanie e -maila za pomocą Java z Gmaila SMTP

Javaamail API obsługuje Javaamail (Javax.Poczta) Interfejs do wysyłania wiadomości e -mail. Zapewnia zajęcia do wysyłania wiadomości e -mail z zdalnego serwera SMTP z uwierzytelnianiem, takim jak Gmail, SendGrid itc.

W tym artykule używamy Javaamail API do wysyłania wiadomości e -mail za pomocą języka programowania Java za pośrednictwem zdalnego serwera SMTP. Ten przykład artykułów używa serwera Gmail SMTP jako zdalnego serwera SMTP do wysyłania wiadomości e -mail.

Krok 1: Konfiguracja środowiska Javaamail

Najpierw musimy pobrać plik JAR zawierający wszystkie klasy w Javax.Poczta. Pobierz słoik (Poczta.słoik) Plik z oficjalnej strony Oracle.

Teraz ustaw ścieżkę klasy w środowisku systemowym. Użytkownicy systemu Windows upewniają się, że skonfigurowałeś zmienną ścieżki do instalacji Java.

Windows:

C:> set classPath = poczta.słoik;.; 

Linux:

# Eksport java_home =/opt/jdk1.8.0_05/ # eksport ścieżka = $ ścieżka: $ java_home/bin # export classPath = $ java_home/jre/lib/ext: $ java_home/lib/tools.słoik: poczta.słoik:. 

Krok 2: Napisz program Java, aby wysłać e -mail

Utwórz plik Java Wyślij maila.Jawa z następującą treścią. W tym skrypcie musisz zmienić wiele ustawień zgodnie z konfiguracją. Ten skrypt może być używany do wysyłania wiadomości e -mail za pośrednictwem połączenia TLS lub SSL SMTP za pośrednictwem serwerów Gmail SMTP.

Importuj Java.Util.Nieruchomości; importować Javax.Poczta.Wiadomość; importować Javax.Poczta.MessagingException; importować Javax.Poczta.HasłoAuthentication; importować Javax.Poczta.Sesja; importować Javax.Poczta.Transport; importować Javax.Poczta.Internet.Adres internetowy; importować Javax.Poczta.Internet.Mimemesage; importować Javax.Poczta.Internet.Adresexception; Klasa publiczna sendmail public static void main (string [] args) rzuca wyjątek końcowy ciąg SMTP_HOST = "SMTP.Gmail.com "; końcowy ciąg smtp_username =" [email protected] "; końcowy ciąg SMTP_PASSWORD =" _EMAIL_PASSWORD_ "; końcowy ciąg SMTP_CONNECTION =" tls "; // Użyj„ tls ”lub„ ssl ”Connection Final String toeMail =" odbiorca@przykład.com "; końcowy ciąg fromeMail =" sender@przykład.com "; właściwości props = nowe właściwości (); rekwizyty.Put („Mail.SMTP.auth ",„ true ”); if (smtp_connection.równa się („tls”)) rekwizyty.Put („Mail.SMTP.starttls.Włącz „,„ true ”); rekwizyty.Put („Mail.SMTP.port "," 587 "); else props.Put („Mail.SMTP.SocketFactory.port „,„ 465 ”); rekwizyty.Put („Mail.SMTP.SocketFactory.klasa ",„ javax.internet.SSL.SslsocketFactory ”); rekwizyty.Put („Mail.SMTP.port "," 465 "); sesja sesji = sesja.GetInstance (rekwizyty, nowy Javax.Poczta.Authenticator () Protected PasswordAuthentication getPasswordAuthentication () zwraca nowe hasłoAuthentication (smtp_username, smtp_password); ); spróbuj Message Msg = nowy mimemessage (sesja); MSG.setfrom (New InternetAddress (fromeMail, „noreply”)); MSG.AddRecipient (wiadomość.Odbiorca.Do nowego Internetu (totaż ”, MR. Odbiorca ")); MSG.setSubject („Witamy w Javaamail API”); MSG.setText („Javaamail API Test - wysyłanie przykładu e -maila za pośrednictwem zdalnego serwera SMTP”); Transport.Wyślij (MSG); System.na zewnątrz.println („wysłany e -mail z powodzeniem…”); catch (adresException e) wyrzuć new RuntimeException (e); catch (MessagingException e) rzuć new RuntimeException (e);
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657Importuj Java.Util.Właściwości; import Javax.Poczta.Wiadomość; import Javax.Poczta.MessagingException; import Javax.Poczta.HasłoAuthentication; import Javax.Poczta.Sesja; import Javax.Poczta.Transport; import Javax.Poczta.Internet.InternetAddress; import Javax.Poczta.Internet.Mimemesage; import Javax.Poczta.Internet.Adresexception; Klasa publiczna sendmail public static void main (string [] args) rzuca wyjątek końcowy ciąg SMTP_HOST = "SMTP.Gmail.com "; końcowy ciąg smtp_username =" [email protected] "; końcowy ciąg SMTP_PASSWORD =" _EMAIL_PASSWORD_ "; końcowy ciąg SMTP_CONNECTION =" tls "; // Użyj„ tls ”lub„ ssl ”Connection Final String toeMail =" odbiorca@przykład.com "; końcowy ciąg fromeMail =" sender@przykład.com "; właściwości props = nowe właściwości (); rekwizyty.Put („Mail.SMTP.auth ",„ true ”); if (smtp_connection.równa się („tls”)) rekwizyty.Put („Mail.SMTP.starttls.Włącz „,„ true ”); rekwizyty.Put („Mail.SMTP.port "," 587 "); else props.Put („Mail.SMTP.SocketFactory.port „,„ 465 ”); rekwizyty.Put („Mail.SMTP.SocketFactory.klasa ",„ javax.internet.SSL.SslsocketFactory ”); rekwizyty.Put („Mail.SMTP.port "," 465 "); sesja sesji = sesja.GetInstance (rekwizyty, nowy Javax.Poczta.Authenticator () Protected PasswordAuthentication getPasswordAuthentication () zwraca nowe hasłoAuthentication (smtp_username, smtp_password); ); spróbuj Message Msg = nowy mimemessage (sesja); MSG.setfrom (New InternetAddress (fromeMail, „noreply”)); MSG.AddRecipient (wiadomość.Odbiorca.Do nowego Internetu (totaż ”, MR. Odbiorca ")); MSG.setSubject („Witamy w Javaamail API”); MSG.setText („Javaamail API Test - wysyłanie przykładu e -maila za pośrednictwem zdalnego serwera SMTP”); Transport.Wyślij (MSG); System.na zewnątrz.println („Wysłany e -mail z pomyślnie wysyłany..."); catch (adresException e) wyrzuć new RuntimeException (e); catch (MessagingException e) Throw new RuntimeException (e);

Krok 3: Wykonaj program, aby wysłać e -mail

Na koniec musimy wykonać program Java, aby wysłać e -mail. Jak wiemy, dzieje się tak w dwóch krokach, najpierw skompilowanie programu, a drugi, aby go uruchomić.

# Javac sendmail.Java # Java sendmail