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);
}
}
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)
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??");
}
}
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!!!