Unconfigured Ad Widget

Collapse

Anúncio

Collapse
No announcement yet.

API Java Mail - Usando o GMailL

Collapse
X
 
  • Filter
  • Tempo
  • Show
Clear All
new posts

  • Font Size
    #1

    Tutorial API Java Mail - Usando o GMailL

    API Java Mail - Usando GMail

    Devido eu ficar dias tentando enviar um e-mail da minha conta gmail para qualquer outra conta existente, e apos ter conseguido com muito custo. Resolvi postar aqui como enviar email a partir de uma conta GMAIL.


    O Tópico sobre a API Java Mail será grande mas com os minimos detalhes para que possa ser enviado o Email desejado.

    Parte 1 - Download API JavaMail


    - Primeiro acesse o site Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...
    - Faça o download da versão JavaMail 1.4.1
    - Abra o arquivo e selecione o arquivo mail.jar e a pasta lib e coloque em qualquer lugar que desejar.De preferencia em algum lugar relacionado ao projeto em desenvolvimento. O resto são exemplo e etc.

    Parte 2 - Setando o classpath

    - como uso o eclipse, eu apenas adiciono a API JavaMail no meu Path do projeto que estou usando, caso quem não usar o eclipse procure uma forma de setar o classpath, porque o resto do tutorial é aplicavel a todos os tipos de ferramenta.
    - clique com o botão direito e vá na opção Build Path e depois em Configute Build Path....
    - abrira uma janela, e nela vá na aba Libraries e depois clique no botao Add External JARs....
    - vá aonde esta o arquivo mail.jar e adicione ele. Pronto, API JavaMail adicionada ao Path.

    Parte 3 - Classe para enviar E-Mail

    Código PHP:
    import java.util.Properties;   
    import javax.mail.Message;   
    import javax.mail.Session;   
    import javax.mail.Transport;   
    import javax.mail.internet.InternetAddress;   
    import javax.mail.internet.MimeMessage;   
    import javax.mail.Authenticator;   
    import javax.mail.PasswordAuthentication;   
      
    public class 
    SendMail {   
           
        private 
    String mailSMTPServer;   
        private 
    String mailSMTPServerPort;   
           
        
    /*  
         * quando instanciar um Objeto ja sera atribuido o servidor SMTP do GMAIL  
         * e a porta usada por ele  
         */   
        
    SendMail() { //Para o GMAIL   
            
    mailSMTPServer "smtp.gmail.com";   
            
    mailSMTPServerPort "465";   
        }   
        
    /*  
         * caso queira mudar o servidor e a porta, so enviar para o contrutor  
         * os valor como string  
         */   
        
    SendMail(String mailSMTPServerString mailSMTPServerPort) { //Para outro Servidor   
            
    this.mailSMTPServer mailSMTPServer;   
            
    this.mailSMTPServerPort mailSMTPServerPort;   
        }   
           
        public 
    void sendMail(String fromString toString subjectString message) {   
               
            
    Properties props = new Properties();   
      
                    
    // quem estiver utilizando um SERVIDOR PROXY descomente essa parte e atribua as propriedades do SERVIDOR PROXY utilizado   
                    /*  
                    props.setProperty("proxySet","true");  
                    props.setProperty("socksProxyHost","192.168.155.1"); // IP do Servidor Proxy  
                    props.setProperty("socksProxyPort","1080");  // Porta do servidor Proxy  
                    */   
      
            
    props.put("mail.transport.protocol""smtp"); //define protocolo de envio como SMTP   
            
    props.put("mail.smtp.starttls.enable","true");   
            
    props.put("mail.smtp.host"mailSMTPServer); //server SMTP do GMAIL   
            
    props.put("mail.smtp.auth""true"); //ativa autenticacao   
            
    props.put("mail.smtp.user"from); //usuario ou seja, a conta que esta enviando o email (tem que ser do GMAIL)   
            
    props.put("mail.debug""true");   
            
    props.put("mail.smtp.port"mailSMTPServerPort); //porta   
            
    props.put("mail.smtp.socketFactory.port"mailSMTPServerPort); //mesma porta para o socket   
            
    props.put("mail.smtp.socketFactory.class""javax.net.ssl.SSLSocketFactory");   
            
    props.put("mail.smtp.socketFactory.fallback""false");   
               
            
    //Cria um autenticador que sera usado a seguir   
            
    SimpleAuth auth null;   
            
    auth = new SimpleAuth ("seuusuarioparalogin","suasenhaparalogin");   
               
            
    //Session - objeto que ira realizar a conexão com o servidor   
            /*Como há necessidade de autenticação é criada uma autenticacao que  
             * é responsavel por solicitar e retornar o usuário e senha para  
             * autenticação */   
            
    Session session Session.getDefaultInstance(propsauth);   
            
    session.setDebug(true); //Habilita o LOG das ações executadas durante o envio do email   
      
            //Objeto que contém a mensagem   
            
    Message msg = new MimeMessage(session);   
      
            try {   
                
    //Setando o destinatário   
                
    msg.setRecipient(Message.RecipientType.TO, new InternetAddress(to));   
                
    //Setando a origem do email   
                
    msg.setFrom(new InternetAddress(from));   
                
    //Setando o assunto   
                
    msg.setSubject(subject);   
                
    //Setando o conteúdo/corpo do email   
                
    msg.setContent(message,"text/plain");   
      
            } catch (
    Exception e) {   
                
    System.out.println(">> Erro: Completar Mensagem");   
                
    e.printStackTrace();   
            }   
               
            
    //Objeto encarregado de enviar os dados para o email   
            
    Transport tr;   
            try {   
                
    tr session.getTransport("smtp"); //define smtp para transporte   
                /*  
                 *  1 - define o servidor smtp  
                 *  2 - seu nome de usuario do gmail  
                 *  3 - sua senha do gmail  
                 */   
                
    tr.connect(mailSMTPServer"seuusuarioparalogin""suasenhaparalogin");   
                
    msg.saveChanges(); // don't forget this   
                //envio da mensagem   
                
    tr.sendMessage(msgmsg.getAllRecipients());   
                
    tr.close();   
            } catch (
    Exception e) {   
                
    // TODO Auto-generated catch block   
                
    System.out.println(">> Erro: Envio Mensagem");   
                
    e.printStackTrace();   
            }   
      
        }   
    }   
      
    //clase que retorna uma autenticacao para ser enviada e verificada pelo servidor smtp   
    class SimpleAuth extends Authenticator {   
        public 
    String username null;   
        public 
    String password null;   
      
      
        public 
    SimpleAuth(String userString pwd) {   
            
    username user;   
            
    password pwd;   
        }   
      
        protected 
    PasswordAuthentication getPasswordAuthentication() {   
            return new 
    PasswordAuthentication (username,password);   
        }   

    Parte 4 - Usando a Classe

    - Apenas cire um objeto da classe SendMail. Podendo passar para o contrutor o servidor que quer usar, ou o padrao ja definido na classe(RECOMENDADO)
    - 1 Opcao:

    SendMail sm = new SendMail("smtp.gmail.com","465");

    sm.sendMail(origem,destino,assunto,mensagem);

    - 2 Opcao:

    SendMail sm = new SendMail();

    sm.sendMail(origem,destino,assunto,mensagem);

    Conclusão:

    Creio que coloquei tudo de importante aqui, caso tenha esquecido algo e tenha ocorrido algum erro na classe de voces. Me mande uma mensagem que estarei respondendo o mais breve possivel.

    Observação:

    - Eu fiz uma peneira na internet pois o trabalho foi duro ate conseguir enviar o email. Caso tenha alguma parte de codigo de outra pessoa aqui, agradeco pois foi muito util.
    - Quem tiver algum material útil a ser colocado neste tópico só sugerir.


    Obrigado a todos e espero que seja util.
    ~# Criado pela [IN]Segurança #~
X
Working...
X