API Javamail EOF?

7 respostas
P
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

B

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!!!" );
	}
}
P

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

Onde consigo os jars dessas bibliotecas?

:oops:

B

Já tentou buscar no google?

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

P

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()

P

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

P
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