JavaMail

6 respostas
NOM

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 [email removido] to [email removido]

errorsun.net.smtp.SmtpProtocolException: 550 5.7.1 Unable to relay for [email removido]

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!!!

6 Respostas

Rafael_Steil

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

Rafael

NOM

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

NOM

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 [email removido]

				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á!", "[email removido]",
                     "[email removido]", "Oi, tudo bem??");
   }
}

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

Rafael_Steil

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

NOM

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!!!

Rafael_Steil

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

Criado 9 de agosto de 2004
Ultima resposta 10 de ago. de 2004
Respostas 6
Participantes 2