JavaMail

fala Galera!!!

Estou tentando enviar um email a partir do java mas esta dificil, estou usando o javaMail e acredito que ele esteja configurado de forma certa, já peguei varios exemplos de envio de email e todos me aparecem a mesma mensagem:
Código:

Sending mail from NOM@yahoo.com.br to NOM@yahoo.com.br

errorsun.net.smtp.SmtpProtocolException: 550 5.7.1 Unable to relay for NOM@yahoo.com.br

classe que chamo para efetura o envio


package  projeto; 

import javax.mail.*; 
import javax.mail.internet.*; 
import java.util.*; 

public class Email { 

/* 
. . . 
*/ 

public void sendSimpleMail (String mailServer, String subject, 
                            String to,String from, String mensagem) 
    throws AddressException, MessagingException { 

Properties mailProps = new Properties(); 
//definição do mailserver 

mailProps.put("mail.smtp.yahoo.com.br", mailServer); 

Session mailSession = Session.getDefaultInstance(mailProps, null); 

//As duas linhas seguintes de código, colocam no 
//formato de endereços, 
//supostamente válidos, de email os dados 
//passados pelos parâmetros to e from. 
InternetAddress destinatario = new InternetAddress (to); 
InternetAddress remetente = new InternetAddress (from); 

//As duas linhas de código a seguir, são 
//responsáveis por setar os atributos e 
//propriedas necessárias do objeto message 
//para que o email seja enviado. 
//inicialização do objeto Message 
Message message = new MimeMessage (mailSession); 

//Definição de quem está enviando o email 
message.setFrom(remetente); 

//define o(s) destinatário(s) e qual o tipo do 
//destinatário. 
//os possíveis tipos de destinatário: TO, CC, BCC 

message.setRecipient( Message.RecipientType.TO, destinatario ); 
//definição do assunto do email 

message.setSubject (subject); 
//definição do conteúdo da mensagem e do 
//tipo da mensagem 

message.setContent (mensagem.toString(), "text/plain"); 
//a linha de código seguinte é a responsável 
//pelo envio do email 

Transport.send (message); 
} 

} 
 

valew galera!!!

Voce nao pode usar o smtp do yahoo sem estar autenticado nele.

Rafael

Eu tinha feito um que autenticava mas mesmo assim ele não funcionou, vou mostrar amanha pois já esta na hora de ir embora!!!

Fiz com autenticação mas esta dando o erro quando executo a classe:

class com.sun.mail.smtp.SMTPSendFailedException: 550 5.7.1 Unable to relay for meuLogin@yahoo.com.br

				at com.sun.mail.smtp.SMTPTransport.rcptTo(SMTPTransport.java:1072)
				at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:492)
				at javax.mail.Transport.send0(Transport.java:151)
				at javax.mail.Transport.send(Transport.java:80)
				at projeto.Email.sendSimpleMail(Email.java:68)
				at projeto.Email.main(Email.java:72)

Pagina jsp

<%//@ page import="projeto.EnviaEmail",
	//			 javax.mail.* %>
<jsp:useBean id="email" class="projeto.Email"/>

<html>
<body>

<%
 
  String mailServer = "smtp.mail.yahoo.com.br";
  String subject = request.getParameter("assunto");
  String from =  request.getParameter("para");
  String to = request.getParameter("de");
  String mensagem =request.getParameter("mensagem");
  email.sendSimpleMail(mailServer, subject, to, from, mensagem);
%>

classe chamada

package projeto;

import javax.mail.*;
import javax.mail.internet.*;

import java.util.Properties;

public class Email {

   public class SMTPAuthenticator extends Authenticator {
      public PasswordAuthentication getPasswordAuthentication() {
         String username = "meuLogin";
         String password = "minhasenha";
         return new PasswordAuthentication(username, password);
      }
   }

   public void sendSimpleMail(
      String mailServer,
      String subject,
      String to,
      String from,
      String mensagem)
      throws AddressException, MessagingException {

      Properties mailProps = new Properties();
      //definição do mailserver

      mailProps.put("smtp.mail.yahoo.com.br", mailServer);

      Authenticator auth = new SMTPAuthenticator();
      Session mailSession = Session.getDefaultInstance(mailProps, auth);

      mailProps.put("smtp.mail.yahoo.com.br", "false");

      //As duas linhas seguintes de código, colocam no
      //formato de endereços,
      //supostamente válidos, de email os dados
      //passados pelos parâmetros to e from.
      InternetAddress destinatario = new InternetAddress(to);
      InternetAddress remetente = new InternetAddress(from);

      //As duas linhas de código a seguir, são
      //responsáveis por setar os atributos e
      //propriedas necessárias do objeto message
      //para que o email seja enviado.
      //inicialização do objeto Message
      Message message = new MimeMessage(mailSession);

      //Definição de quem está enviando o email
      message.setFrom(remetente);

      //define o(s) destinatário(s) e qual o tipo do
      //destinatário.
      //os possíveis tipos de destinatário: TO, CC, BCC

      message.setRecipient(Message.RecipientType.TO, destinatario);
      //definição do assunto do email

      message.setSubject(subject);
      //definição do conteúdo da mesnagem e do
      //tipo da mensagem

      message.setContent(mensagem.toString(), "text/html");
      //a linha de código seguinte é a responsável
      //pelo envio do email

      Transport.send(message);
   }
   public static void  main(String args[]) throws AddressException, MessagingException{
      Email email = new Email();
      email.sendSimpleMail("smtp.mail.yahoo.com.br", "Olá!", "meuLogin@yahoo.com.br",
                     "meuLogin@yahoo.com.br", "Oi, tudo bem??");
   }
}

Tem algo de errado com este codigo?
Valew!!!

Parece que voce tem coisa invertida. No teu codigo esta

String from =  request.getParameter("para");
String to = request.getParameter("de");

a var “from” eh obtida do parametro “para”? nao deveria ser o contrario? como em

String from =  request.getParameter("de");
String to = request.getParameter("para");

outro detalhe eh que o “from” tem que ser da conta @yahoo

Rafael

Valew por ter apontado isso, mas no meu caso eu estava enviando para min mesmo usando a mesma conta do yahoo que possuo ou seja o de e o para era o mesmo email!!!

Mude a forma que vc autentica para a mostrada nesse topico:

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

Veja a segunda mensagem. A ultima tem um codigo de exemplo completo.

Rafael