Erro ao executar o envio de e-mail

1 resposta
Helder8

Ola pessoal,

To tentando executar um envio de e-mail via java, mas está dando o seguinte erro:

javax.mail.MessagingException: Could not connect to SMTP host: localhost, port: 25;
  nested exception is:
        java.net.ConnectException: Connection refused: connect
        at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1706)
        at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:525)
        at javax.mail.Service.connect(Service.java:291)
        at javax.mail.Service.connect(Service.java:172)
        at javax.mail.Service.connect(Service.java:121)
        at javax.mail.Transport.send0(Transport.java:190)
        at javax.mail.Transport.send(Transport.java:120)
        at exemplo_e_mail.Main.enviar(Main.java:74)
        at exemplo_e_mail.Main.enviar(Main.java:83)
        at exemplo_e_mail.Main.main(Main.java:39)
Caused by: java.net.ConnectException: Connection refused: connect
        at java.net.PlainSocketImpl.socketConnect(Native Method)
        at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
        at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
        at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
        at java.net.Socket.connect(Socket.java:519)
        at java.net.Socket.connect(Socket.java:469)
        at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:284)
        at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:227)
        at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1672)
        ... 9 more

Classe que estou usando para mandar e-mail via java

package exemplo_e_mail;

import java.net.InetAddress;
import java.net.UnknownHostException;
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;

public class Main {

    private Session session;
    private String maquina;

    public static void main(String[] args) {

        Main main = new Main();

        String assunto = "Assunto: teste";
        String eMail = "[email removido]";

        String mensagem = "mensagem";

        main.enviar(eMail, assunto, mensagem);
    }

    public void iniciarEmail() {

        Properties p = new Properties();
        p.put("mail.host", "smtp.teste.com.br");

        if (session == null) {
            session = Session.getInstance(p);
        }

        if (maquina == null) {
            try {
                maquina = InetAddress.getLocalHost().getHostName();
            } catch (UnknownHostException e) {
                maquina = "NÃO LOCALIZADO";
            }
        }
    }

    public boolean enviar(String de, String para, String assunto, String mensagem) {
        boolean retorno = false;
        Message msg = new MimeMessage(session);
        try {
            msg.setFrom();
            if ((para == null) || (para.length() == 0)) {
                para = "[email removido]";
            }
            msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(para, false));

            msg.setFrom(new InternetAddress(de));
            msg.setSubject(assunto);
            msg.setText(mensagem);

            Transport.send(msg);
            retorno = true;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return retorno;
    }

    public boolean enviar(String para, String assunto, String mensagem) {
        return enviar("[email removido]", para, assunto, mensagem);
    }
}

Estou usando a lib mail.jar.

Alguem tem ideia porque ta dando esse erro, se tiver algum tutorial, me passem obrigado.

Obrigado.

1 Resposta

lgi2020

Vou fazer uma pergunta bem tola:

Você tem um serviço de smtp rodando na sua máquina local, na porta 25?

Abraços.

Criado 1 de abril de 2011
Ultima resposta 1 de abr. de 2011
Respostas 1
Participantes 2