Erro ao enviar Email

2 respostas
G

Pessoal estou utilizando a classe abaixo para enviar email, mas está dando o seguinte erro:
DEBUG SMTP SENT: RCPT TO:<[email removido]>

DEBUG SMTP RCVD: 550 5.7.1 Unable to relay for [email removido]

Invalid Addresses

[email removido]

DEBUG SMTPTransport: Sending failed because of invalid destination addresses

Entretanto, este e-mail é válido. Alguém pode me ajudar?

package email;

import javax.mail.<em>;

import javax.mail.internet.</em>;

import java.util.*;

public class Email {

private Session mailSession;

private Transport smtp;

private Provider smtpPtovider;
public Email() {

Properties sistema = (Properties) System.getProperties().clone();

try{

mailSession = Session.getInstance(sistema);

mailSession.setDebug(true);

if (mailSession != null){

smtp = mailSession.getTransport(“smtp”);

smtpPtovider = mailSession.getProvider(“smtp”);

}

}catch (NoSuchProviderException pe){

System.err.println(“Provider não encontrado pelo protocolo SMTP:+pe.getMessage());

}

}
public void conexao(){

try{

smtp.connect(nome.br,null,null);

System.out.println("Conectado: "+smtp.isConnected());

}catch(MessagingException me){

me.printStackTrace();

}catch(Exception e){

e.printStackTrace();

}

}
public void enviaEmail (){

try{

MimeMessage mensagem = new MimeMessage(mailSession);

mensagem.setFrom(new InternetAddress(<a>"[email removido]</a>"));

mensagem.addRecipient(Message.RecipientType.TO, new InternetAddress(<a>"[email removido]</a>"));

mensagem.setSentDate(new java.util.Date());

mensagem.setSubject(Mensagem de Erro);

mensagem.setText(Ocorreu um erro na atualização da página);

smtp.send(mensagem);

}catch (Exception e){

e.printStackTrace();

}

}

}

2 Respostas

leonardom

Tente usar a seguinte implementação:

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

public class Mail
&#123;

    public static final String DEFAULT_MAIL_SERVER = "servidor";
    public static final String DEFAULT_FROM = "[email removido]";
    
    public boolean sendSimpleMail&#40;String to, String subject, String mensagem&#41;
    &#123;
        return sendSimpleMail&#40;DEFAULT_MAIL_SERVER, DEFAULT_FROM, to, subject, mensagem&#41;;
    &#125;
    
    public boolean sendSimpleMail&#40;String mailServer, String from,
                                  String to,  String subject, String mensagem&#41;
    &#123;
        
        boolean retorno = false;
        
        try
        &#123;
            Properties mailProps = new Properties&#40;&#41;;

            mailProps.put&#40;"mail.smtp.host", mailServer&#41;;

            Session mailSession = Session.getDefaultInstance&#40;mailProps, null&#41;;

            InternetAddress destinatario = new InternetAddress&#40;to&#41;;

            InternetAddress remetente = new InternetAddress&#40;from&#41;;

            MimeMessage message = new MimeMessage&#40;mailSession&#41;;

            message.setFrom&#40;remetente&#41;;
            message.setRecipient&#40; Message.RecipientType.TO, destinatario &#41;;
            message.setSubject&#40;subject&#41;;
            message.setSentDate&#40;new Date&#40;&#41;&#41;;               
            message.setText&#40;mensagem, "iso-8859-1"&#41;;

            Transport.send &#40;message&#41;;
            
            retorno = true;
        &#125;
        catch&#40;AddressException e&#41;
        &#123;
            System.out.println&#40; "Mail-&gt;sendSimpleMail&#40;&#41;-&gt; Erro de endereco" &#41;;
            System.out.println&#40; e.getMessage&#40;&#41; &#41;;            
            e.printStackTrace&#40;&#41;;
        &#125;       
        catch&#40;MessagingException e&#41;
        &#123;
            System.out.println&#40; "Mail-&gt;sendSimpleMail&#40;&#41;-&gt; Erro no envio da mensagem" &#41;;
            System.out.println&#40; e.getMessage&#40;&#41; &#41;;
            e.printStackTrace&#40;&#41;;
        &#125;       
        catch&#40;Exception e&#41;
        &#123;
            System.out.println&#40; "Mail-&gt;sendSimpleMail&#40;&#41;-&gt; Erro" &#41;;
            System.out.println&#40; e.getMessage&#40;&#41; &#41;;
            e.printStackTrace&#40;&#41;;
        &#125;
        
        return retorno;
    &#125;
&#125;
ozielneto

Provavelmente o STMP que voce esta usando não aceita o RELAY…

Ou seja, O MTA dele nao esta ativo para o envio de mensagens…

Sugiro voce usar um outro SMTP server, onde seu usuario e valido envio…

Não esqueça de verificar se o seu SMTP server está configurado para autenticar o usuário que está enviando a mensagem.

[]'s

Criado 27 de agosto de 2003
Ultima resposta 27 de ago. de 2003
Respostas 2
Participantes 3