API Javamail EOF?

7 respostas
paulinhohd
Bom dia pessoal vejam meu código para envio de e-mail:
Properties p = new Properties();   
					p.put("mail.host", "smtp.mail.yahoo.com.br");   
					                   
					Session session = Session.getInstance(p, null);   
					MimeMessage msg = new MimeMessage(session);   
					  
					try {   
					    // "de" e "para"!!   
					    msg.setFrom(new InternetAddress("[email removido]"));   
					    msg.setRecipient(Message.RecipientType.TO, new InternetAddress("[email removido]"));   
					  
					    // nao esqueca da data!   
					    // ou ira 31/12/1969 !!!   
					    msg.setSentDate(new Date());   
					  
					    msg.setSubject("Teste Javamail");   
					  
					    msg.setText("O maior de todos os guerreiros é aquele que vence a si próprio!");   
					  
					    // evniando mensagem (tentando)   
					    Transport.send(msg);  
					    System.out.println("Mensagem enviada com sucesso!");
					}   
					catch (AddressException ea) {   
						System.out.println("Deu pau no EA" + ea.getMessage());// nunca deixe catches vazios!
					}   
					catch (MessagingException eb) {   
						System.out.println("Deu pau no EB" + eb.getMessage());// nunca deixe catches vazios!   
					}

Vejam o que retornou:
Deu pau no EB[EOF]

7 Respostas

blackout

Cara, eu tinha feito um exemplo de mandar email de uma outra forma, achei um pouco mais tranquilo de entender do que essa forma que você fez. Já testei e está funcionando perfeitamente. Dá uma olhada, qualquer coisa grita!

package br.util;

import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.HtmlEmail;


public class SendMail 
{
	private HtmlEmail mail;
	
	public SendMail(){
		mail = new HtmlEmail();
	}
	
	public void mensagem() {
		StringBuffer msg = new StringBuffer();
		
		msg.append( "<body>" );
		msg.append( "	<table border=1>" );
		msg.append( "		<tr>" );
		msg.append( "			<td>Esse é um exemplo de enviar email no Java, </td>\n" );
		msg.append( "			<td>bem tranquilo e fácil de entender!!!</td>" );
		msg.append( "		</tr>" );
		msg.append( "	</table>" );
		msg.append( "</body>" );
		
		try{
			mail.setHostName( "SVCLEXC2.gvt.net.br" );
			mail.addTo( "[email removido]", "Rafael GVT" );
			mail.setFrom( "[email removido]", "Rafael Gmail" );
			mail.setSubject( "Teste de enviar email com Java" );
			mail.setHtmlMsg( msg.toString() );
		}
		catch( EmailException mailex ){
			mailex.printStackTrace();
		}
		
		
	}
	
	public void enviaEmail(){
		try{
			mail.send();
		}
		catch( EmailException mailex ){
			mailex.printStackTrace();
		}
	}
	
	public static void main(String[] args) 
	{
		SendMail mail = new SendMail();
		
		mail.mensagem();
		mail.enviaEmail();

		System.out.println( "Email enviado com sucesso!!!" );
	}
}
paulinhohd

blackout:
import org.apache.commons.mail.EmailException; import org.apache.commons.mail.HtmlEmail;

Onde consigo os jars dessas bibliotecas?

:oops:

blackout

Já tentou buscar no google?

Se a internê não te ajudou, posta aí seu email que eu te encaminho rapidão!

paulinhohd

Achei, valeu! 8)

O
Properties p = new Properties();   
	p.put("mail.host", "smtp.mail.yahoo.com.br");   
					                   
	Session session = Session.getInstance(p, null);   
	MimeMessage msg = new MimeMessage(session);   
					  
	try {   
	   // "de" e "para"!!   
	   msg.setFrom(new InternetAddress("[email removido]"));
Pelo seu código, você está tentando usar o SMTP Server do Yahoo para enviar o e-mail. Está faltando configurar a porta e o usuário e senha: [url]http://help.yahoo.com/l/br/yahoo/mail/pop/pop-03.html[/url]

Além disso, neste mesmo FAQ tem uma dica que só é possível enviar um e-mail após fazer download das mensagens através do POP :
[url]http://help.yahoo.com/l/br/yahoo/mail/pop/pop-11.html[/url]
Eu nunca usei o SMTP Server do Yahoo.

PS: Use printStackTrace() ao invés de getMessage()

paulinhohd

E como configura a porta e senha em java?
8)

paulinhohd
Properties p = new Properties();     
                    p.put("mail.host", "smtp.mail.yahoo.com.br");     
                    p.put("mail.smtp.auth",true);
                    p.put("mail.smtp.port",465);                     
                    Session session = Session.getInstance(p, null);     
                    MimeMessage msg = new MimeMessage(session);     
                         
                    try {     
                        // "de" e "para"!!     
                        msg.setFrom(new InternetAddress("[email removido]"));     
                        msg.setRecipient(Message.RecipientType.TO, new InternetAddress("[email removido]"));     
                         
                        // nao esqueca da data!     
                        // ou ira 31/12/1969 !!!     
                        msg.setSentDate(new Date());     
                         
                        msg.setSubject("Teste Javamail");     
                         
                        msg.setText("O maior de todos os guerreiros é aquele que vence a si próprio!");     
                         
                        // evniando mensagem (tentando)     
                        Transport.send(msg);     
                        System.out.println("Mensagem enviada com sucesso!");   
                    }     
                    catch (AddressException ea) {     
                        System.out.println("Deu pau no EA");
                        ea.printStackTrace();// nunca deixe catches vazios!   
                    }     
                    catch (MessagingException eb) {     
                        System.out.println("Deu pau no EB");
                        eb.printStackTrace();// nunca deixe catches vazios!     
                    }

Dá o seguinte erro:

Deu pau no EB
javax.mail.MessagingException: [EOF]
at com.sun.mail.smtp.SMTPTransport.issueCommand(SMTPTransport.java:1481)
at com.sun.mail.smtp.SMTPTransport.issueSendCommand(SMTPTransport.java:1512)
at com.sun.mail.smtp.SMTPTransport.mailFrom(SMTPTransport.java:1054)
at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:634)
at javax.mail.Transport.send0(Transport.java:189)
at javax.mail.Transport.send(Transport.java:118)
at gui.Email$1.actionPerformed(Email.java:117)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at ch.randelshofer.quaqua.QuaquaButtonListener.mouseReleased(QuaquaButtonListener.java:86)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)

Criado 19 de agosto de 2008
Ultima resposta 19 de ago. de 2008
Respostas 7
Participantes 3