Ajuda JavaMail

Pessoal
coloquei todos os jar que usa pra mandar email…

minha classe é essa

alguem poderia me falar se é realmente isso que precisa pra mandar um email ?
eu executo a classe
não da erro nenhum… mas o email nao chega, creio que tem alguma coisa na empresa bloqueando
essa parte do smtp

[code]
public static void main(String args[]){

	         Properties p = new Properties();  
	         p.put("mail.host", "smtp2.uol.com.br");  
	           
	         Session session = Session.getInstance(p, null);  
	         MimeMessage msg = new MimeMessage(session);  
	           
	         try {  
	             // "de" e "para"!!  
	             msg.setFrom(new InternetAddress("ssss@hotmail.com"));  
	             msg.setRecipient(Message.RecipientType.TO, new InternetAddress("xxxx@gmail.com"));  
	   
	             // nao esqueca da data!  
	             // ou ira 31/12/1969 !!!  
	             msg.setSentDate(new Date());  
	   
	             msg.setSubject("assunto da mensagem");  
	   
	            msg.setText("corpo da mensagem");  
	   
	             // evniando mensagem (tentando)  
	             Transport.send(msg);  
	         }  
	         catch (AddressException e) {  
	             // nunca deixe catches vazios!  
	         }  
	         catch (MessagingException e) {  
	             // nunca deixe catches vazios!  
	         }  
	       
	     }  [/code]

Você precisa do protocolo SMTP para envio.

Na minha classe eu uso assim:

Properties props = new Properties(); props.put("mail.transport.protocol", protocolo); props.put("mail.smtp.host", servidor); sessao = Session.getDefaultInstance(props);

onde:

[list]sessao = Instancia da classe Session[/list]
[list]protocolo = “smtp”[/list]
[list]servidor = servidor aqui da empresa.[/list]

Abraços!!

[quote=ajfilho]Você precisa do protocolo SMTP para envio.

Na minha classe eu uso assim:

Properties props = new Properties(); props.put("mail.transport.protocol", protocolo); props.put("mail.smtp.host", servidor); sessao = Session.getDefaultInstance(props);

onde:

[list]sessao = Instancia da classe Session[/list]
[list]protocolo = “smtp”[/list]
[list]servidor = servidor aqui da empresa.[/list]

Abraços!![/quote]

Realmente você precisa disto agora checa também o seu anti-vírus, aqui na empresa tive um problema parecido onde o antivírus barrava as mensagens.

att. Carlos

Você normalmente não pode usar um servidor SMTP (por exemplo, o da UOL) para enviar emails com um remetente de outro domínio (no seu caso o do HotMail). Se isso fosse possível, a Internet estaria mais afogada em spam que já está.

Pessoal
achei outro exemplo
mais da um erro…

[code]
package br.com.microlog.openbravo.lancaData;

import java.security.Security;
import java.util.Properties;

import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

public class teste {

private static final String SMTP_HOST_NAME = "smtp.gmail.com";

private static final String SMTP_PORT = "465";

private static final String emailMsgTxt = "Teste";

private static final String emailSubjectTxt = "Testando o email!";

private static final String emailFromAddress = "xxxxx@gmail.com";

private static final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";

private static final String[] sendTo = { "xxxxx@gmail.com"};

private static final String LOGIN = "xxxxxxx";
private static final String PASSWORD = "xxxxx";

private String host;
private String port;
private String login;
private String senha;

public teste(){
	
	
}

public teste(String host, String port, String login, String senha){
	this.host = host;
	this.port = port;
	this.login = login;
	this.senha = senha;
	
}

public static void main(String args[]) throws Exception {

	Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());

	new teste().sendSSLMessage(sendTo, emailSubjectTxt, emailMsgTxt,
			emailFromAddress);
	System.out.println("Sucessfully Sent mail to All Users");
}

public void sendSSLMessage(String recipients[], String subject,
		String message, String from) throws MessagingException {
	boolean debug = true;

	Properties props = new Properties();
	
	props.put("mail.smtp.auth", "true");
	props.put("mail.debug", "true");
	if(host == null)
	props.put("mail.smtp.host", SMTP_HOST_NAME);
	if(port == null)
	props.put("mail.smtp.port", SMTP_PORT);
	
	props.put("mail.smtp.socketFactory.port", SMTP_PORT);
	props.put("mail.smtp.socketFactory.class", SSL_FACTORY);
	props.put("mail.smtp.socketFactory.fallback", "false");


	Session session = Session.getDefaultInstance(props,
			new javax.mail.Authenticator() {


		private boolean validaLoginSenha() {

			
			return ((login == null) && (senha == null));
		}
	});

	session.setDebug(debug);

	Message msg = new MimeMessage(session);
	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/plain");
	Transport.send(msg);
}

} [/code]

o Erro

DEBUG: JavaMail version 1.4.1
DEBUG: not loading file: C:\Arquivos de programas\Java\jdk1.6.0_04\jre\lib\javamail.providers
DEBUG: java.io.FileNotFoundException: C:\Arquivos de programas\Java\jdk1.6.0_04\jre\lib\javamail.providers (O sistema não pode encontrar o arquivo especificado)
DEBUG: URL jar:file:/F:/Nova%20pasta/jar/imap.jar!/META-INF/javamail.providers
DEBUG: successfully loaded resource: jar:file:/F:/Nova%20pasta/jar/imap.jar!/META-INF/javamail.providers
DEBUG: URL jar:file:/F:/Nova%20pasta/jar/pop3.jar!/META-INF/javamail.providers
DEBUG: successfully loaded resource: jar:file:/F:/Nova%20pasta/jar/pop3.jar!/META-INF/javamail.providers
DEBUG: URL jar:file:/F:/Nova%20pasta/jar/smtp.jar!/META-INF/javamail.providers
DEBUG: successfully loaded resource: jar:file:/F:/Nova%20pasta/jar/smtp.jar!/META-INF/javamail.providers
DEBUG: successfully loaded resource: /META-INF/javamail.default.providers
DEBUG: Tables of loaded providers
DEBUG: Providers Listed By Class Name: {com.sun.mail.smtp.SMTPSSLTransport=javax.mail.Provider[TRANSPORT,smtps,com.sun.mail.smtp.SMTPSSLTransport,Sun Microsystems, Inc], com.sun.mail.smtp.SMTPTransport=javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc], com.sun.mail.imap.IMAPSSLStore=javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Sun Microsystems, Inc], com.sun.mail.pop3.POP3SSLStore=javax.mail.Provider[STORE,pop3s,com.sun.mail.pop3.POP3SSLStore,Sun Microsystems, Inc], com.sun.mail.imap.IMAPStore=javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Sun Microsystems, Inc], com.sun.mail.pop3.POP3Store=javax.mail.Provider[STORE,pop3,com.sun.mail.pop3.POP3Store,Sun Microsystems, Inc]}
DEBUG: Providers Listed By Protocol: {imaps=javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Sun Microsystems, Inc], imap=javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Sun Microsystems, Inc], smtps=javax.mail.Provider[TRANSPORT,smtps,com.sun.mail.smtp.SMTPSSLTransport,Sun Microsystems, Inc], pop3=javax.mail.Provider[STORE,pop3,com.sun.mail.pop3.POP3Store,Sun Microsy stems, Inc], smtp=javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc], pop3s=javax.mail.Provider[STORE,pop3s,com.sun.mail.pop3.POP3SSLStore,Sun Microsystems, Inc]}
DEBUG: successfully loaded resource: /META-INF/javamail.default.address.map
DEBUG: URL jar:file:/F:/Nova%20pasta/jar/smtp.jar!/META-INF/javamail.address.map
DEBUG: successfully loaded resource: jar:file:/F:/Nova%20pasta/jar/smtp.jar!/META-INF/javamail.address.map
DEBUG: not loading file: C:\Arquivos de programas\Java\jdk1.6.0_04\jre\lib\javamail.address.map
DEBUG: java.io.FileNotFoundException: C:\Arquivos de programas\Java\jdk1.6.0_04\jre\lib\javamail.address.map (O sistema não pode encontrar o arquivo especificado)
DEBUG: setDebug: JavaMail version 1.4.1
DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc]
DEBUG SMTP: useEhlo true, useAuth true
Exception in thread "main" javax.mail.AuthenticationFailedException
	at javax.mail.Service.connect(Service.java:319)
	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 br.com.microlog.openbravo.lancaData.teste.sendSSLMessage(teste.java:103)
	at br.com.microlog.openbravo.lancaData.teste.main(teste.java:55)

Ele nao acha um tal de javamail.providers

Cara o erro é de autenticação.

Cara vou postar um código que estou usando aqui sem erro e autenticado.

 try {
            String de = "antispam@xxxxx.com.br";
            String para = "eu@eu.com.br";
            
            Properties p = new Properties();
            p.put("mail.host", "10.1.3.23");

            Session session = Session.getInstance(p, new Autenticacao());
            MimeMessage msg = new MimeMessage(session);

            msg.setFrom(new InternetAddress(de));
            msg.setRecipient(javax.mail.Message.RecipientType.TO, new InternetAddress(para));

            // nao esqueca da data!
            // ou ira 31/12/1969 !!!
            msg.setSentDate(new Date());

            msg.setSubject("Assunto", "ISO-8859-1");
            StringBuffer sb = new StringBuffer();
            StringBuffer url = new StringBuffer();
            sb.append("mensagem linha 1 <br>");
            sb.append("mensagem linha 2 <br>");
            sb.append("mensagem linha 3 <br>");
            sb.append("mensagem linha 4 <br>");
            sb.append("mensagem linha 4 <br>");
            
            msg.setContent(sb.toString(), "text/html; charset=ISO-8859-1");

            // evniando mensagem (tentando)
            Transport.send(msg);

        } catch (Exception e) {
            e.printStackTrace();
        }
class Autenticacao extends Authenticator {

    protected PasswordAuthentication getPasswordAuthentication() {
        return new PasswordAuthentication("usuario", "senha");
    }
}

Para usar isto você deve ter o pacote JavaMail no classpath da aplicação.

o código que te apresentei está rodando aqui normalmente.

Se funfar posta ae!

Att. Carlos

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:288)
	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 br.com.microlog.openbravo.lancaData.teste.main(teste.java:42)
Caused by: java.net.SocketException: Connection reset
	at java.net.SocketInputStream.read(SocketInputStream.java:168)
	at com.sun.mail.util.TraceInputStream.read(TraceInputStream.java:110)
	at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
	at java.io.BufferedInputStream.read(BufferedInputStream.java:237)
	at com.sun.mail.util.LineInputStream.readLine(LineInputStream.java:88)
	at com.sun.mail.smtp.SMTPTransport.readServerResponse(SMTPTransport.java:1589)
	... 8 more

oq pode ser?

Você alterou a linha abaixo para o seu servidor de email?

Properties p = new Properties();   
p.put("mail.host", "10.1.3.23");   

para

Properties p = new Properties();   
p.put("mail.host", "seu servidor de email aqui");   

Testa a sua conexão com o servidor, faz assim entra no executar do windows e digita:

telnet seu.servidor.de.email 25

se não conectar tem alguma coisa de bloqueando.

Ai já não é mais erro de soft.