Envio Email Javamail Hotmail [RESOLVIDO]

boa noite

sou novato e gostaria que me ajudassem

estou copiando um codigo que achei no “pai google”… para enviar email hotmail
ele funciona normal quando coloco ele na classe sozinho…(como o abaixo)

porem se eu criar um metodo public void enviarHotmail(); e chamar o metodo depois da um erro em duas linhas (25 e 27)

pergunta: pq nao funciona como metodo?

segue abaixo

creditos: devmedia, Madson Costa Carvalho, link http://www.devmedia.com.br/javamail-enviando-email-utilizando-o-hotmail/18042

[code]import java.util.Properties;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

public class JavaMailApp
{
public static void main(String[] args) {
Properties props = new Properties();
/** Parâmetros de conexão com servidor Hotmail */
props.put(“mail.transport.protocol”, “smtp”);
props.put(“mail.smtp.host”, “smtp.live.com”);
props.put(“mail.smtp.socketFactory.port”, “587”);
props.put(“mail.smtp.socketFactory.fallback”, “false”);
props.put(“mail.smtp.starttls.enable”, “true”);
props.put(“mail.smtp.auth”, “true”);
props.put(“mail.smtp.port”, “587”);

        Session session = Session.getDefaultInstance(props,
                    new javax.mail.Authenticator() {
                         protected PasswordAuthentication getPasswordAuthentication() 
                         {
                               return new PasswordAuthentication("seuemail@hotmail.com", "suasenha123");
                         }
                    });

        /** Ativa Debug para sessão */
        session.setDebug(true);

        try {

              Message message = new MimeMessage(session);
              message.setFrom(new InternetAddress("seuemail@hotmail.com")); //Remetente

              message.setRecipients(Message.RecipientType.TO, 
                                InternetAddress.parse("seuamigo@hotmail.com")); //Destinatário(s)
              message.setSubject("Enviando email com JavaMail");//Assunto
              message.setText("Enviei este email utilizando JavaMail com minha conta Hotmail!");
              /**Método para enviar a mensagem criada*/
              Transport.send(message);

              System.out.println("Feito!!!");

         } catch (MessagingException e) {
              throw new RuntimeException(e);
        }
  }

}[/code]

Velho eu declarei o Session como atributo global (static) e o método de enviaHotmail() como static tbm… (pq vc não instanciou a classe no main, então usa como método global)

Zoia aí:

[code]import java.util.Properties;

import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

import org.omg.CORBA.Environment;

public class Email {

static Session session; //declarar como um atributo de classe e static(global)

public static void main(String[] args) {  
    Properties props = new Properties();  
    /** Parâmetros de conexão com servidor Hotmail */  
    props.put("mail.transport.protocol", "smtp");  
    props.put("mail.smtp.host", "smtp.live.com");  
    props.put("mail.smtp.socketFactory.port", "587");  
    props.put("mail.smtp.socketFactory.fallback", "false");  
    props.put("mail.smtp.starttls.enable", "true");  
    props.put("mail.smtp.auth", "true");  
    props.put("mail.smtp.port", "587");  

   session = Session.getDefaultInstance(props,  
                new javax.mail.Authenticator() {  
                     protected PasswordAuthentication getPasswordAuthentication()   
                     {  
                           return new PasswordAuthentication("seuemail@hotmail.com", "suasenha");  
                     }  
                });  

    /** Ativa Debug para sessão */  
    session.setDebug(true);  
   
    enviaHotmail(); //chama o método que é declarado como static nesse contexto

}

public static void enviaHotmail() {
	try {  

        Message message = new MimeMessage(session);  
        message.setFrom(new InternetAddress("seuemail@hotmail.com")); //Remetente  

        message.setRecipients(Message.RecipientType.TO,   
                          InternetAddress.parse("bobao@guj.com.br")); //Destinatário(s)  
        message.setSubject("Testando Protocolo de Email");//Assunto  
        message.setText("As mina pira no Tester" +
        		"\n Hahahaha");  
        /**Método para enviar a mensagem criada*/  
        Transport.send(message);

        System.out.println("Feito!!!");  

   } catch (MessagingException e) {  
        throw new RuntimeException(e);  
  }  
}

}
[/code]

Eu fiz dessa maneira ai, lógico, mudando os dados… deu certo :smiley:

FernandoKozlov nao sei se tinha explicado direito… mas vc me respondeu mesmo assim…
queria fazer como abaixo…
tava faltando era declarar como static…

BRIGADAO!!!

[code]import java.util.Properties;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

public class JavaMailAppsssssssss
{
public static void enviarHotmail(){

        Properties props = new Properties();
        /** Parâmetros de conexão com servidor Hotmail */
        props.put("mail.transport.protocol", "smtp");
        props.put("mail.smtp.host", "smtp.live.com");
        props.put("mail.smtp.socketFactory.port", "587");
        props.put("mail.smtp.socketFactory.fallback", "false");
        props.put("mail.smtp.starttls.enable", "true");
        props.put("mail.smtp.auth", "true");
        props.put("mail.smtp.port", "587");

        Session session = Session.getDefaultInstance(props,
                    new javax.mail.Authenticator() {
                         protected PasswordAuthentication getPasswordAuthentication() 
                         {
                               return new PasswordAuthentication("xxxxxxxx@hotmail.com", "xxxxxxx");
                         }
                    });

        /** Ativa Debug para sessão */
        session.setDebug(true);

        try {

              Message message = new MimeMessage(session);
              message.setFrom(new InternetAddress("xxxxxxx@hotmail.com")); //Remetente

              message.setRecipients(Message.RecipientType.TO, 
                                InternetAddress.parse("xxxxxxxx@hotmail.com")); //Destinatário(s)
              message.setSubject("Enviando email com JavaMail");//Assunto
              message.setText("Enviei este email utilizando JavaMail com minha conta Hotmail!");
              /**Método para enviar a mensagem criada*/
              Transport.send(message);

              System.out.println("Feito!!!");

         } catch (MessagingException e) {
              throw new RuntimeException(e);
        }
  }
             

 public static void main(String[] args) {
     
            enviarHotmail();
               
            }
  }
    [/code]

que bom que ajudou :smiley: