Erro no JavaMail

4 respostas
Mateus_Avelar

Bom dia pessoal, estou com um probleminha em uma classe que efetua envio de e-mails, so que em casa nos testes feitos, funcionou normalmente sem problema nenhum, mas na empresa, esta dando erro.

alguem já passou por isso, alguem pode ajudar?

desde já eu agradeço. 8)
o erro:

Exception in thread "main" javax.mail.MessagingException: Exception reading response;
  nested exception is:
        java.net.SocketException: Connection reset
        at com.sun.mail.smtp.SMTPTransport.readServerResponse(SMTPTransport.java:1611)
        at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1369)
        at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:412)
        at javax.mail.Service.connect(Service.java:310)
        at javax.mail.Service.connect(Service.java:169)
        at javax.mail.Service.connect(Service.java:118)
        at javax.mail.Transport.send0(Transport.java:188)
        at javax.mail.Transport.send(Transport.java:118)
        at mail.Send_mail.postMail(Send_mail.java:127)
        at mail.Send_mail.main(Send_mail.java:60)
Caused by: java.net.SocketException: Connection reset
        at java.net.SocketInputStream.read(SocketInputStream.java:185)
        at com.sun.mail.util.TraceInputStream.read(TraceInputStream.java:110)
        at java.io.BufferedInputStream.fill(BufferedInputStream.java:235)
        at java.io.BufferedInputStream.read(BufferedInputStream.java:254)
        at com.sun.mail.util.LineInputStream.readLine(LineInputStream.java:88)
        at com.sun.mail.smtp.SMTPTransport.readServerResponse(SMTPTransport.java:1589)
        ... 9 more
Java Result: 1

4 Respostas

doug

Olá
Tive 2 probleminhas semenhantes a esse, um era o anti-vírus (Mcaffe) que está bloqueando a saída das informações.
Outro foi o firewall que bloqueava a porta pop e smtp do e-mail… acho que deve ser algo parecido ao seu.

É que eu não lembro a exception que ele reportava, tenta ver essas duas coisas no seu micro, de repente pode ser
que seja isso.

Espero ter ajudado
Flwsss

Mateus_Avelar

vlw… vc ajudou…

descobri que esta bloqueado no firewall…

mas o https nao…

tem como eu utilizar o https??

alguem já conseguiu com o gmail?

Obrigado a todos.

doug

Olá
Opa!! Safadinho Firewall… então o gmail tem umas configurações diferentes…
Eu consegui seguindo esse tópico link

Sobre o https, nunca testei para ver se envia… seria na parte
da sua aplicação ou a chamada do javamail?

Se for do javamail… tem um property que ativa protocolo de segurança… não me lembro qual era
mas sei que tem…

Flwsssss

Mateus_Avelar

É uma classe...

o codigo....

eu vou ver esse link e tentar implementar...

obrigado. :lol:

/*
 * Created on 25/12/2006
 * Mateus Avelar
 *
 *
 */
package send_mail_almaviva;

import java.awt.AWTException;
import java.io.IOException;
import java.util.Properties;

import java.util.logging.Level;
import java.util.logging.Logger;
import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.FileDataSource;
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.Part;
import javax.mail.PasswordAuthentication;
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;
import javax.swing.JOptionPane;


/**
 * @author Mateus  Avelar
 * Classe responsavel pelo envio do e-mail
 *
 *
 */
public class Send_mail {
   

    public static boolean trava_anexo=Criar_mail.trava_anexo; //verificar se há ou nao anexo a ser enviado

    public static String attach=Criar_mail.url_arquivo; // caminho do arquivo do anexo

	private static final String SMTP_HOST_NAME = "gmail-smtp.l.google.com"; // servidor de smtp

	private static final String SMTP_AUTH_USER = "##########@gmail.com"; //usuario de autenticaçao

	private static final String SMTP_AUTH_PWD = "######"; //senha de altenticaçao

	public static String emailMsgTxt = Criar_mail.mensagem; // corpo da mensagem

	public static String emailSubjectTxt = Criar_mail.subject;// assunto do e-mail

	private static final String emailFromAddress = "#########@gmail.com"; // remetente

	public static String[] emailList = {"######@hotmail.com","########@gmail.com" }; // email de todos os destinatarios

	public static void main(String args[]) throws Exception {
            System.out.println("main");
		Send_mail smtpMailSender = new Send_mail();
		smtpMailSender.postMail(emailList, emailSubjectTxt, emailMsgTxt,
				emailFromAddress);
		System.out.println("ENVIO CONCLUIDO A TODOS -main-");

	}

	public void postMail(String recipients[], String subject, String message,
	String from) throws MessagingException {
		boolean debug = false;
		java.security.Security
				.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
        //Configurando a conexao com o gmail
		Properties props = new Properties();
		props.put("mail.transport.protocol", "smtp");
		props.put("mail.smtp.starttls.enable","true");
		props.put("mail.smtp.host", SMTP_HOST_NAME);
		props.put("mail.smtp.auth", "true");

		Authenticator auth = new SMTPAuthenticator();
		Session session = Session.getDefaultInstance(props, auth);

		session.setDebug(debug);

		// ciando a mensagem
		Message msg = new MimeMessage(session);
        // configurando os parametros to e from....
		InternetAddress addressFrom = new InternetAddress(from);
		msg.setFrom(addressFrom);

		InternetAddress[] addressTo = new InternetAddress[recipients.length];
		for (int i = 0; i < recipients.length; i++) {
			addressTo[i] = new InternetAddress(recipients[i]);
		}
		msg.setRecipients(Message.RecipientType.TO, addressTo);



		//
		msg.setSubject(subject);
		msg.setContent(message, "text/html");


        if (trava_anexo==true){
        //enviando anexo

             MimeBodyPart mbp = new MimeBodyPart();
             DataSource fds = new FileDataSource(attach);
             mbp.setDisposition(Part.ATTACHMENT);
             mbp.setDataHandler(new DataHandler(fds));
             mbp.setFileName(fds.getName());
             Multipart mp = new MimeMultipart();
             MimeBodyPart mbp1 = new MimeBodyPart();
             mbp1.setText(message);
             mp.addBodyPart(mbp1);
             mp.addBodyPart(mbp);
             msg.setContent(mp);

        }else{

          Multipart mp = new MimeMultipart();
          MimeBodyPart mbp1 = new MimeBodyPart();
          mbp1.setText(message);
          mp.addBodyPart(mbp1);
          msg.setContent(mp);
        // enviando mensagem sem anexo.
        }

		Transport.send(msg);
        System.out.println("enviado...");
    }

    void show() throws MessagingException, InterruptedException {
        System.out.println("show");
        SysTray.sending();
        SysTray.pop();
        Send_mail smtpMailSender = new Send_mail();
		smtpMailSender.postMail(emailList, emailSubjectTxt, emailMsgTxt,
				emailFromAddress);
		System.out.println("ENVIO CONCLUIDO A TODOS -show-");
        SysTray.refresh();
        Thread.sleep(1000);
    }

	/**
	 * autenticaçao no server do gmail

	 */
	private class SMTPAuthenticator extends javax.mail.Authenticator {

		public PasswordAuthentication getPasswordAuthentication() {
			String username = SMTP_AUTH_USER;
			String password = SMTP_AUTH_PWD;
			return new PasswordAuthentication(username, password);
		}
	}
}
Criado 2 de janeiro de 2009
Ultima resposta 2 de jan. de 2009
Respostas 4
Participantes 2