Envio Email Javamail Hotmail [RESOLVIDO]

3 respostas
T

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 [url]http://www.devmedia.com.br/javamail-enviando-email-utilizando-o-hotmail/18042[/url]

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("[email removido]", "suasenha123");
                             }
                        });

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

            try {

                  Message message = new MimeMessage(session);
                  message.setFrom(new InternetAddress("[email removido]")); //Remetente

                  message.setRecipients(Message.RecipientType.TO, 
                                    InternetAddress.parse("[email removido]")); //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);
            }
      }
}

3 Respostas

FernandoKozlov

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í:

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("[email removido]", "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("[email removido]")); //Remetente  

            message.setRecipients(Message.RecipientType.TO,   
                              InternetAddress.parse("[email removido]")); //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);  
      }  
	}
}

Eu fiz dessa maneira ai, lógico, mudando os dados... deu certo :D

T

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

BRIGADAO!!!!

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("[email removido]", "xxxxxxx");
                             }
                        });

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

            try {

                  Message message = new MimeMessage(session);
                  message.setFrom(new InternetAddress("[email removido]")); //Remetente

                  message.setRecipients(Message.RecipientType.TO, 
                                    InternetAddress.parse("[email removido]")); //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();
                   
                }
      }
FernandoKozlov

que bom que ajudou :smiley:

Criado 1 de outubro de 2012
Ultima resposta 2 de out. de 2012
Respostas 3
Participantes 2