Javamail API - enviando e -mail usando Java do Gmail SMTP

Javamail API - enviando e -mail usando Java do Gmail SMTP

Javamail API suporta o Javamail (Javax.correspondência) Interface para enviar mensagens de e -mail. Ele fornece aulas para enviar e -mail do servidor SMTP remoto com autenticação como Gmail, sendGrid etc.

Neste artigo, estamos usando a API Javamail para enviar e -mails usando a linguagem de programação Java por meio de servidor SMTP remoto. Este exemplo de artigos está usando o servidor SMTP do Gmail como um servidor SMTP remoto para enviar e -mails.

Etapa 1: configuração do ambiente Javamail

Primeiro, precisamos baixar o arquivo jar contendo todas as classes em javax.correspondência. Baixar jar (correspondência.jarra) Arquivo do site oficial do Oracle.

Agora defina o caminho de classe no ambiente do sistema. Os usuários do Windows garantem que você tenha configurado a variável de caminho para sua instalação Java.

Janelas:

C:> set classPath = Mail.jarra;.; 

Linux:

# exportar java_home =/opt/jdk1.8.0_05/ # Caminho de exportação = $ PATH: $ java_home/bin # exportar classe de classe = $ java_home/jre/lib/ext: $ java_home/lib/ferramentas.Jar: Mail.jarra:. 

Etapa 2: Escreva um programa Java para enviar e -mail

Crie um arquivo java Enviar correio.Java com o seguinte conteúdo. Neste script, você precisa alterar muitas configurações conforme sua configuração. Este script pode ser usado para enviar e -mail através de TLS ou conexão SSL SMTP através de servidores Gmail SMTP.

importar java.util.Propriedades; importar javax.correspondência.Mensagem; importar javax.correspondência.MessagingException; importar javax.correspondência.PasswordAuthentication; importar javax.correspondência.Sessão; importar javax.correspondência.Transporte; importar javax.correspondência.Internet.Endereço de internet; importar javax.correspondência.Internet.Mimemessage; importar javax.correspondência.Internet.Endereço de endereço; classe pública sendmail public static void main (string [] args) lança exceção final string smtp_host = "smtp.Gmail.com "; string final smtp_username =" [email protected] "; final string smtp_password =" _email_password_ "; final string smtp_connection =" tls "; // use 'tls' ou 'ssl' conexão final string toemail =" destinatá[email protected] "; Final String FromEmail =" [email protected] "; Propriedades Props = new Properties (); Props.Put ("Correio.smtp.auth "," true "); if (smtp_connection.igual ("tls")) adereços.Put ("Correio.smtp.StartTls.Ativar "," True "); adereços.Put ("Correio.smtp.porta "," 587 "); else props.Put ("Correio.smtp.SocketFactory.porta "," 465 "); adereços.Put ("Correio.smtp.SocketFactory.classe "," Javax.líquido.ssl.Sslsocketfactory "); adereços.Put ("Correio.smtp.porta "," 465 "); sessão = sessão = sessão.GetInstance (adereços, New Javax.correspondência.Autenticator () Protected PasswordAuthentication getPasswordAtHentication () return New PasswordAuthentication (smtp_username, smtp_password); ); tente mensagem msg = new Mimemessage (sessão); msg.SETFROM (novo InternetDdress (Fromemail, "Noreply")); msg.addrecipient (mensagem.Receptorype.Para, novo internet -address (Toemail ", Sr. Destinatário ")); msg.SetSubject ("Welcome to Javamail API"); msg.SetText ("Teste da API Javamail - enviando exemplo de email através do servidor SMTP remoto"); Transporte.send (msg); Sistema.fora.println ("Email enviado com sucesso ..."); catch (endereço e) lança nova runtimeException (e); catch (MessagingException e) lança a nova RunTimeException (e);
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657importar java.util.Propriedades; importar javax.correspondência.Mensagem; importar javax.correspondência.MessagingException; importar javax.correspondência.PasswordAuthentication; importar javax.correspondência.Sessão; importar javax.correspondência.Transporte; importar javax.correspondência.Internet.InternetDresfress; importar javax.correspondência.Internet.Mimemessage; importar javax.correspondência.Internet.Endereço de endereço; classe pública sendmail public static void main (string [] args) lança exceção final string smtp_host = "smtp.Gmail.com "; string final smtp_username =" [email protected] "; final string smtp_password =" _email_password_ "; final string smtp_connection =" tls "; // use 'tls' ou 'ssl' conexão final string toemail =" destinatá[email protected] "; Final String FromEmail =" [email protected] "; Propriedades Props = new Properties (); Props.Put ("Correio.smtp.auth "," true "); if (smtp_connection.igual ("tls")) adereços.Put ("Correio.smtp.StartTls.Ativar "," True "); adereços.Put ("Correio.smtp.porta "," 587 "); else props.Put ("Correio.smtp.SocketFactory.porta "," 465 "); adereços.Put ("Correio.smtp.SocketFactory.classe "," Javax.líquido.ssl.Sslsocketfactory "); adereços.Put ("Correio.smtp.porta "," 465 "); sessão = sessão = sessão.GetInstance (adereços, New Javax.correspondência.Autenticator () Protected PasswordAuthentication getPasswordAtHentication () return New PasswordAuthentication (smtp_username, smtp_password); ); tente mensagem msg = new Mimemessage (sessão); msg.SETFROM (novo InternetDdress (Fromemail, "Noreply")); msg.addrecipient (mensagem.Receptorype.Para, novo internet -address (Toemail ", Sr. Destinatário ")); msg.SetSubject ("Welcome to Javamail API"); msg.SetText ("Teste da API Javamail - enviando exemplo de email através do servidor SMTP remoto"); Transporte.send (msg); Sistema.fora.println ("Email enviado com sucesso..."); Catch (endereço e) lança nova runtimeException (e); catch (MessagingException e) throw Run RunTimeException (e);

Etapa 3: Execute o programa para enviar e -mail

Finalmente, precisamos executar o programa Java para enviar e -mail. Como sabemos que isso acontece em duas etapas, primeiro para compilar o programa e o segundo para executá -lo.

# Javac Sendmail.Java # Java Sendmail