Enviar Um Email

3 respostas
D

e ai galera tudo certinho , bom essa é a primeira vez que eu participo de um forum , sou iniciante em Java e estou com um problema … eu tenho um código para mandar email via Java , mais ele ta dando o seguinte erro.

o código é esse::

import java.util.Properties;

import javax.mail.Message;

import javax.mail.MessagingException;

import javax.mail.Session;

import javax.mail.Transport;

import javax.mail.internet.InternetAddress;

import javax.mail.internet.MimeBodyPart;

import javax.mail.internet.MimeMessage;

import javax.mail.internet.MimeMultipart;

class EnviaEmail {

private static Session session = null;
private static final String contentType = "text/html";
private static String servidor = "localhost";

public void enviarEmailHtml(String assunto, String mensagem, String de) throws
        MessagingException {
    
    String emailPara = "Diego Pangone <[email removido]>";
    Properties props = new Properties();
    
    props.put("mail.smtp.host", servidor);
    props.put("mail.smtp.auth", "true");
    
    session = Session.getDefaultInstance(props, new Autenticacao());
    Message message = new MimeMessage(session);
    InternetAddress endMail = new InternetAddress(emailPara);
    message.addRecipient(Message.RecipientType.TO, endMail);
    
    InternetAddress fromEmail = new InternetAddress(de);
    message.setFrom(fromEmail);
    message.setSubject(assunto);
    
    MimeMultipart mpRoot = new MimeMultipart("mixed");
    MimeMultipart mpContent = new MimeMultipart("alternative");
    
    MimeBodyPart mbp1 = new MimeBodyPart();
    
    mbp1.setContent(mensagem.toString(), contentType);
    mpContent.addBodyPart(mbp1);
    
    MimeBodyPart contentPartRoot = new MimeBodyPart();
    contentPartRoot.setContent(mpContent);
    mpRoot.addBodyPart(contentPartRoot);
    
    message.setContent(mpRoot);
    message.saveChanges();
    
    System.out.println("Conectado...");
    Transport.send(message);
    System.out.println("Enviado.");
    
}

}

e o erro é o seguinte:::

javax.mail.MessagingException: Could not connect to SMTP host: localhost, port: 25;
nested exception is:
java.net.ConnectException: Connection refused: connect

alguem por favor pode me dar uma ajuda… desde já , muito obrigado

3 Respostas

esb

Oi diegopangone,

Do jeito que você fez, apontando pro localhost, você teria que ter um servidor de e-mails rodando na sua máquina. Tente configurar sua aplicação para algum servidor de e-mails conhecido, ou algum que esteja disponível pra você, ou configure um na sua máquina…

[]s

D

o fera valew , deu certinho aqui , muito obrigado

lessandrus

Ola eu tô com um problema na no envio de email. Assim, eu uso uma máquina virtual pra desenvolver e testar.
Eu devo estar fazendo alguma burrada. Segue o erro e as classe utilizadas:

<<<<<>>>>>

org.apache.commons.mail.EmailException: Sending the email to the following server failed : mail.terra.com.br:25

at org.apache.commons.mail.Email.sendMimeMessage(Email.java:873)

at org.apache.commons.mail.Email.send(Email.java:898)

at com.rebaixarts.contato.services.EmailTeste.sendEmail(EmailTeste.java:32)

at com.rebaixarts.contato.struts.action.FaleConoscoAction.perform(FaleConoscoAction.java:50)

at org.apache.struts.action.Action.execute(Action.java:401)

at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:446)

at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:266)

at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1292)

at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:510)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)

at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)

at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)

at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)

at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)

at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)

at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)

at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)

at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)

at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)

at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)

at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)

at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)

at java.lang.Thread.run(Thread.java:619)

<<<<<>>>>>
package com.rebaixarts.contato.services;

import java.util.Date;
import java.util.Properties;

import javax.mail.Address;

import javax.mail.Message;

import javax.mail.Session;

import javax.mail.Transport;

import javax.mail.Authenticator;

import javax.mail.MessagingException;

import javax.mail.internet.MimeMessage;

import javax.mail.PasswordAuthentication;

import javax.mail.internet.InternetAddress;

import com.rebaixarts.contato.vo.*;

public class Email extends Authenticator implements ConfigPadraoEmail {

/* Classe de Autenticação */
public class SmtpAuthenticator extends Authenticator {  
    public PasswordAuthentication getPasswordAuthentication()  {  
      
        return new PasswordAuthentication(ConfigPadraoEmail.USERNAME,
        		                          ConfigPadraoEmail.PASSWORD);  
    }  
}

/* Classe de Envio */
public String sendMail (String from, String mensagem) throws MessagingException {
			
	Address destTo = new InternetAddress(ConfigPadraoEmail.USERNAME); 
	Address destCc = new InternetAddress(ConfigPadraoEmail.USERNAME);
    Address destBcc = new InternetAddress(ConfigPadraoEmail.USERNAME);
	
	try{ 
		
	    Properties mailProps = new Properties();
	
        //Define o SMTP de envio
        mailProps.put("mail.smtp.host", ConfigPadraoEmail.MAILSERVER);
               
        //Realiza a autenticação
        Authenticator auth = new SmtpAuthenticator(); 
        
        Session mailsession = Session.getInstance(mailProps, auth);                           
         
        //Inicializa o objeto Message
        Message message = new MimeMessage(mailsession);

        message.setFrom(new InternetAddress(from));
                 
        //Define o(s) destinatário(s): TO, CC, BCC
        if (destTo != null) { 
           message.setRecipient(Message.RecipientType.TO, destTo); 
        }  
                          
        if (destCc != null) { 
           message.setRecipient(Message.RecipientType.CC, destCc); 
        }  
                          
        if (destBcc != null) { 
           message.setRecipient(Message.RecipientType.BCC, destBcc); 
        }  
        
        //Define o assunto do E-Mail
        message.setSubject(ConfigPadraoEmail.ASSUNTO);

        //Define o conteúdo da Mensagem
        message.setContent(mensagem.toString().replace("\n", "<br>"), "text/html");

        //Define a data atual a mensagem
        message.setSentDate(new Date());

        //Enviado o E-Mail
        Transport transport = mailsession.getTransport("smtp");
        
        System.out.println("Conectando no servidor de smtp: "+ ConfigPadraoEmail.MAILSERVER +"...");
        
        //Aqui ocorre o erro!!!!!
        transport.connect(ConfigPadraoEmail.MAILSERVER, ConfigPadraoEmail.USERNAME, ConfigPadraoEmail.PASSWORD);

        if (transport.isConnected()) {
        	
            System.out.println("Conectado ["+ ConfigPadraoEmail.MAILSERVER +"]");
            System.out.println("Enviando Mensagem...");
            
            transport.send(message);
        
            System.out.println("Mensagem Enviada!!!");
        }
        
    } catch (MessagingException e) {
        e.printStackTrace();
        return e.getMessage();
    } 
    
    return null;        
}

}

<<<<<<Interface com variáveis>>>>>>
package com.rebaixarts.contato.vo;

public interface ConfigPadraoEmail {

public static final String USERNAME = "[email removido]";	
public static final String MAILSERVER = "mail.terra.com.br";
public static final String ASSUNTO = "Dúvida Internauta";
public static final String PASSWORD = "senha";

}

<<<<<>>>>>
package com.rebaixarts.contato.struts.action;

import java.io.IOException;

import org.apache.commons.mail.*;

import javax.mail.MessagingException;

import javax.servlet.ServletException;

import org.apache.struts.action.Action;

import org.apache.struts.action.ActionForm;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.ActionForward;

import org.apache.struts.action.ActionMapping;

import com.rebaixarts.contato.services.Email;
import com.rebaixarts.contato.services.EmailTeste;

import com.rebaixarts.contato.struts.form.FaleConoscoForm;

public final class FaleConoscoAction extends Action {

public ActionForward perform(ActionMapping mapping,
                             ActionForm form,
                             HttpServletRequest request,
                             HttpServletResponse response)
                             throws IOException, ServletException {
        	
	 FaleConoscoForm enviarForm = (FaleConoscoForm) form;
	 Email servicesEmail = new Email();  
	    	
	 String result = null;
       	    	    	
	 String nome  = enviarForm.getNome(); //Nome qualquer   	
 String texto = enviarForm.getTexto();   //Um texto em uma textArea
 String remetente = enviarForm.getEmail(); //Um email válido qualquer
      
     //Tratamento para página inicial 
 if (nome == null || remetente == null) {
   	return (mapping.findForward("first"));
 } else if (nome.equals("") || remetente.equals("")) {
     	return (mapping.findForward("empty"));    
 }
   	    	    
 //Enviando Email 
 try {			

	result = servicesEmail.sendMail(remetente, texto);

    } catch (MessagingException e) {
	e.printStackTrace();
    } 
 	
  		 
    if (result == null) {
    
       return mapping.findForward("failure");  
    
    } else { 
    
       enviarForm.setNome(null);
 	   enviarForm.setEmail(null);
       enviarForm.setTexto(null);
    }
    
    return mapping.findForward("success");                
}

}

Criado 12 de outubro de 2006
Ultima resposta 10 de fev. de 2009
Respostas 3
Participantes 3