Enviar Email autenticado

Galera

Estou fazendo um programa para enviar e-mail, mas quando executo me da uma exception do tipo :

javax.mail.SendFailedException: Sending failed;
nested exception is:
class javax.mail.SendFailedException: Invalid Addresses;
nested exception is:
class javax.mail.SendFailedException: 553 UTILIZE A AUTENTICACAO PARA ENVIO DE MENSAGENS/THIS SERVER IS TO BE USED WITH AUTHENTICATION (#5.7.1)

Meu servidor de Email pede autenticação

Já peguei alguns artigos de como autenticar … mas não deu certo, segue o codigo abaixo:

Alguem pode me dar um Help…

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.*;

public class LixoEmail {

   private String host = null;
   private String from = null;

   public LixoEmail(){

         host ="smtp.host.com.br";
         from ="algo@host.com.br";
    }

    public void sendEmail(){
           try{
   Properties props = System.getProperties(); 
   props.put("mail.smtp.host", host); 
   autenticador a = new autenticador(); 
   Session session = Session.getDefaultInstance(props, null); 
   MimeMessage message = new MimeMessage(session); 
   message.setFrom(new InternetAddress(from)); 
   message.setSubject("Teste"); 
 	    message.setRecipient(Message.RecipientType.TO, new InternetAddress("algo@host.com.br"));
message.setContent("Mensagem de teste", "text/html"); 
Transport.send(message); 
		
					
}
catch(Exception e){
   e.printStackTrace();
}
	
      }

      class autenticador extends Authenticator { 
  
             public PasswordAuthentication getPasswordAuthentication() { 
 String username = "eu@algo.com.br";
String password = "1234";    
return new PasswordAuthentication(username, password); 
           } 
      }

}

Ja foi discutido bilhares de vezes isso aqui no forum. De uma procurada por javamail que vc vai encontrar varios exemplos, inclusive utilizando autenticacao.

Rafael

so se for no au Rafael, porq eu ja olhei tudo e naum achei…na verdade eu achei, mas so consigo mandar em servidores naum autenticados…

teste com autenticados e naum de:

Ali em baixo esta o cod blzinha, mandando um email:

porem quando comento o
Transport.send(msg);

pelo que esta abixo dele, naum vai, da isso:
javax.mail.MessagingException: 530 authentication needed

quem sabe voce possa me ajudar, senhor R Ignorância e ainda acha que sabe!!!

from = new String("president@whitehouse.com")
    to = new String("crisnello@unicenp.br");
    subject = new String("=?punkip?=");

    Properties props = System.getProperties();
    // XXX - could use Session.getTransport() and Transport.connect()
    // XXX - assume we're using SMTP
    //if (mailhost != null)
    mailhost = new String("smtp.unicenp.br");
	props.put("mail.smtp.host", mailhost);
	
	Authenticator auth = new MyAuthenticator();
    // Get a Session object
    
    
    Session session = Session.getInstance(props, null);
    if (debug)
	session.setDebug(true);

	//session.

    // construct the message
    Message msg = new MimeMessage(session);
    if (from != null)
	msg.setFrom(new InternetAddress(from));
    else
	msg.setFrom();

    msg.setRecipients(Message.RecipientType.TO,
				InternetAddress.parse(to, false));
    if (cc != null)
	msg.setRecipients(Message.RecipientType.CC,
				InternetAddress.parse(cc, false));
    if (bcc != null)
	msg.setRecipients(Message.RecipientType.BCC,
				InternetAddress.parse(bcc, false));

    msg.setSubject(subject);

    collect(in, msg);

    msg.setHeader("X-Mailer", mailer);
    msg.setSentDate(new Date());

    // send the thing off
    Transport.send(msg);
	/*Transport transport = session.getTransport("smtp"); 
	transport.connect(mailhost, "tonero@superig.com.br", "minhasenha"); 


	Address[] toAddress = new Address[1]; 
	
	toAddress[0] = new InternetAddress(to);
	//toAddress[1] = new InternetAddress("tonero@superig.com.br");  
	transport.sendMessage(msg,toAddress);*/

Troquei o

Session session = Session.getInstance(props, null);

por

Session session = Session.getInstance(props, auth);

e mesmo assim naum DEU…

Eh sempre um prazer trocar mensagens com pessoas educadas como voce.

Vejamos, no topo da pagina tem um link chamado “Pesquisar”. Se por qualquer motivo voce nao conseguir ver ele, o link eh

http://www.guj.com.br/forum/search.php

Entao, prosseguindo, voce precisa procurar pelas palavras corretas. No teu caso, voce esta trabalhando com email e precisa autenticar. A primeira coisa que eu tentei procurar foi “mail” e “autenticacao”. Nao esqueca de selecionar a opcao “Pesquisar por todos termos”. Voce ira encontrar por volta de 5 resultados. Um deles eh o abaixo:

http://www.guj.com.br/forum/viewtopic.php?t=10197&highlight=mail+autenticacao

Veja a segunda mensagem do topic. Entao role a pagina ate o final e veja a ultima mensagem. Se isso nao funcionar, entao com certeza o problema eh de BIOS ou de IO.

Rafael

Cara achar isso foi facil…é como sempre faço.

a parada é que eu peguei a classe EnviaEmail, só para ter certeza que não estava fazendo nada de errado.

eu tenho um servidor SMTP aqui no meu windows mesmo, QK SMTP ele é otimo e muito bom…eu conecto no server do superig com autenticação com e ele e tudo bem,…

mas no java ele não consegue autenticar ele da:
Conectando no servidor :smtp.superig.com.br…
Conectado [smtp.superig.com.br]
Enviando Mensagem…
javax.mail.MessagingException: 530 authentication needed

at com.sun.mail.smtp.SMTPTransport.issueCommand(SMTPTransport.java:1020)
at com.sun.mail.smtp.SMTPTransport.mailFrom(SMTPTransport.java:716)
at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:388)
at EnviaEmail.enviaEmail(EnviaEmail.java:83)
at msgsend.<init>(msgsend.java:31)
at msgsend.main(msgsend.java:18)

[b]porem quando eu coloco para ele usar o meu server localhost e la no QKSMTP eu configuro para ele usar o server do superig utenticado ele encaminha belezinha…

eu peguei a classe EnviaEmail e fiz essa outra ai em baixo para utiliza-la…
e muito obrigado pelo educado…eu sou mesmo.!:
[/b]

import javax.mail.Address;
import javax.mail.MessagingException;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;

public class msgsend {

public static void main(String[] argv) {
		new msgsend();
}

public msgsend() {

	EnviaEmail email = new EnviaEmail();
	
	Address ad[] = new InternetAddress[1];
	try{
		
	ad[0] = new InternetAddress("tonero@superig.com.br");
	//ad[1] = new InternetAddress("tonero@bol.com.br");
	
		email.enviaEmail("FUCK","Subject","kami@superig.com.br",ad,null,null,"smtp.superig.com.br","text",
		"tonero@superig.com.br","minhasenha","");
	}
	catch(AddressException ae)
	{
	}
	catch(MessagingException me)
	{
	}
}

}