javaMail

32 respostas
Ronald_lima

Olá Pessoal, estou estudando sobre JavaMail, gostaria de saber se voces tem algum código, o mais simples possível para me enviar para que eu possa estudar em cima…

Pesquisei um pouco porém cada um fala algumas coisas diferentes e acaba confundindo mais, se alguem tiver algum codigo em java o mais simples possível que possibilite envio para hotmail ou yahoo(contas que possuo), por favor me envie!!!

32 Respostas

romarcio

Usa a busca do Guj, tem varios tópicos com códigos prontos, resolvidos por outras dúvidas, um deles: http://www.guj.com.br/posts/list/87637.java#473182

E na sessão Artigos, tem um artigo sobre isso: http://www.guj.com.br/article.show.logic?id=21

Ronald_lima

Eu ja havia Pesquisado neste link, rodei o codigo e ele lançou a exceção de messagingException()!!!

Mas não sei pq!!!Será que muda de serviddor para servidor???pois tentei enviar para yahoo e hotmail!!!

Aguardo retorno Abrçs

E

GMail != Yahoo != HotMail != normal

Ronald_lima

Ok, sera que necessito de autenticação???Nesse caso para yahoo???

vlw

romarcio

Sim, necessitam de autenticação.

Também aqui nesse trecho, vc tem que setar o referente ao servidor de email que está usando:

SendMail() { //Para o GMAIL mailSMTPServer = "smtp.gmail.com"; mailSMTPServerPort = "465"; }

Nesse exemplo foi usado o gmail, para bol, yahoo e outros vc deverá ver a mailSMTPServer e o mailSMTPServerPort de cada um.

Ronald_lima
Ok, entendido, encontrei o servidor e a porta, acho que é a certa, mas onde que este código vai entrar nesse código: package JavaMail;
import java.util.Properties;
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
/**
 *
 * @author desenvolvimento
 */
public class Email
{
    public static void main(String[] rec)
    {
        Properties p = new Properties();
        p.put("mail.host", "plus.smtp.mail.yahoo.com");
        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("Testando");
            msg.setText("Recebido");
            // enviando mensagem (tentando)
            Transport.send(msg);
        }
        catch (AddressException e)
        {
            // nunca deixe catches vazios!
            System.out.println("E-mail com erro!");
        }
        catch (MessagingException e)
        {
            // nunca deixe catches vazios!
            System.out.println("Mensagem não enviada!");
        }
    }
}
romarcio

aqui:

p.put("mail.host", "plus.smtp.mail.yahoo.com");
p.put("mail.port", "porta yahoo");
Ronald_lima

Obrigado à todos, ja consegui fazer um de envio de hotmail!!!

abrçs

Ronald_lima
package JavaMail;

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;
/**
 *
 * @author desenvolvimento
 */
public class Email
{
    public static void main(String[] args)
    {
            Properties props = new Properties();
            /** Parâmetros de conexão com servidor Hotmail */
            props.put("mail.transport.protocol", "smtp");
            props.put("mail.smtp.host", "smtp.live.com");
            props.put("mail.smtp.socketFactory.port", "587");
            props.put("mail.smtp.socketFactory.fallback", "false");
            props.put("mail.smtp.starttls.enable", "true");
            props.put("mail.smtp.auth", "true");
            props.put("mail.smtp.port", "587");

            Session session = Session.getDefaultInstance(props, new javax.mail.Authenticator()
            {
                   protected PasswordAuthentication getPasswordAuthentication()
                   {
                        return new PasswordAuthentication("emailseu", "senhasua");
                   }
            });

            /** Ativa Debug para sessão */
            session.setDebug(true);

            try
            {
                  Message message = new MimeMessage(session);
                  message.setFrom(new InternetAddress("emailseu")); //Remetente

                  message.setRecipients(Message.RecipientType.TO, InternetAddress.parse("emaildapessoadestinada")); //Destinatário(s)
                  message.setSubject("Enviando email com JavaMail");//Assunto
                  message.setText("Enviei este email utilizando JavaMail com minha conta Hotmail!");
                  /**Método para enviar a mensagem criada*/
                  Transport.send(message);

                  System.out.println("Feito!!!");

             }
            catch (MessagingException e)
            {
                  throw new RuntimeException(e);
            }
      }
}
Ronald_lima
Será que alguem poderia me explicar essaslinhas de código so javaMail(properties):
Properties p = new Properties();
        p.put("mail.transport.protocol", "smtp");//???
        p.put("mail.smtp.host", "smtp.live.com");//???
        p.put("mail.smtp.socketFactory.port", "587");//Porta de conexão ao hotmail
        p.put("mail.smtp.socketFactory.fallback", "false");//???
        p.put("mail.smtp.starttls.enable", "true");//???
        p.put("mail.smtp.auth", "true");//Autenticação
        p.put("mail.smtp.port", "587");//Porta de conexao ao hotmail

        Session s = Session.getDefaultInstance(p, new javax.mail.Authenticator()//???
        {
            protected PasswordAuthentication getPasswordAuthentication()
            {
                return new PasswordAuthentication("[email removido]", "");//Retirei apenas minha senha aqui(sob Controle)
            }

        });
evertonsilvagomesjav

Uma coisa estranha que eu to vendo, testando esse codigo é o seguinte:

quando eu tenho esse email “From”: [email removido]

e nessa linha de codigo esta assim : msg.setFrom(new InternetAddress(from));

Mas na conexão esta assim: tr.connect(mailSMTPServer, "[email removido]", "####");

Era pra enviar com o email do msn, porem com smtp do gmail, mas na hora que recebo o email, esta enviando com o do gmail mesmo.

Nao sei se fui claro, mas alguem sabe o pq?

romarcio

É que na verdade ele envia com o email da autenticação:

Session session = Session.getDefaultInstance(props, new javax.mail.Authenticator()  
            {  
                   protected PasswordAuthentication getPasswordAuthentication()  
                   {  
                        return new PasswordAuthentication("emailseu", "senhasua");  
                   }  
            });

Esse msg.setFrom(new InternetAddress(from)); vai ser o que aparece para o destinatário. Vc pode colocar qualquer email ali, que vai parecer que foi enviado por ele, mas na verdade foi enviado pelo email da autenticação.

romarcio
Ronald_lima:
Será que alguem poderia me explicar essaslinhas de código so javaMail(properties):
Properties p = new Properties();
        p.put("mail.transport.protocol", "smtp");//Protocolo de envio de email 
        p.put("mail.smtp.host", "smtp.live.com");//Servidor de email
        p.put("mail.smtp.socketFactory.port", "587");//Porta de conexão ao hotmail
        p.put("mail.smtp.socketFactory.fallback", "false");//If set to true, failure to create a socket using the specified socket factory class will cause the socket to be created using the java.net.Socket class. Defaults to true.
        p.put("mail.smtp.starttls.enable", "true");//Um tipo de segurança que alguns servidores como o gmail usam, outros não usam.
        p.put("mail.smtp.auth", "true");//Autenticação
        p.put("mail.smtp.port", "587");//Porta de conexao ao hotmail

        Session s = Session.getDefaultInstance(p, new javax.mail.Authenticator()//Cria a autenticação no servidor, como se vc coloca-se seu usuario e senha para logar.
        {
            protected PasswordAuthentication getPasswordAuthentication()
            {
                return new PasswordAuthentication("[email removido]", "");//Retirei apenas minha senha aqui(sob Controle)
            }

        });
evertonsilvagomesjav

Mas com o codigo que ele passou utilizando essa linha, nao ta fazendo efeito nenhum a autenticaçao eu mesmo fiz o teste aqui, vc sabe pq romarcio?

tr.connect(mailSMTPServer, "[email removido]", "*****");
romarcio
evertonsilvagomesjava:
Mas com o codigo que ele passou utilizando essa linha, nao ta fazendo efeito nenhum a autenticaçao eu mesmo fiz o teste aqui, vc sabe pq romarcio?
tr.connect(mailSMTPServer, "[email removido]", "*****");

Ah, essa linha é do código que tem em um link né.

Se vc tirar os parametros, também vai tranquilo:

tr.connect();
Tem o connect() e ele é sobrecarregado 2 vezes
public void connect() throws javax.mail.MessagingException { /* compiled code */ }
    
public void connect(java.lang.String host, java.lang.String user, java.lang.String password) throws javax.mail.MessagingException { /* compiled code */ }
    
public void connect(java.lang.String user, java.lang.String password) throws javax.mail.MessagingException { /* compiled code */ }

Mas não faz diferença mesmo, só faz diferença para um tipo de classe que não use esse tipo de autenticação que foi usada.

Se usar o outro método getDefaultInstance:
Session session = Session.getDefaultInstance(props);
tirando o parametro auth, com login e senha, dai vai autenticar lá no
connect(mailSMTPServer, "[email removido]", "*****")
evertonsilvagomesjav
romarcio:
evertonsilvagomesjava:
Mas com o codigo que ele passou utilizando essa linha, nao ta fazendo efeito nenhum a autenticaçao eu mesmo fiz o teste aqui, vc sabe pq romarcio?
tr.connect(mailSMTPServer, "[email removido]", "*****");

Ah, essa linha é do código que tem em um link né.

Se vc tirar os parametros, também vai tranquilo:

tr.connect();
Tem o connect() e ele é sobrecarregado 2 vezes
public void connect() throws javax.mail.MessagingException { /* compiled code */ }
    
public void connect(java.lang.String host, java.lang.String user, java.lang.String password) throws javax.mail.MessagingException { /* compiled code */ }
    
public void connect(java.lang.String user, java.lang.String password) throws javax.mail.MessagingException { /* compiled code */ }

Mas não faz diferença mesmo, só faz diferença para um tipo de classe que não use esse tipo de autenticação que foi usada.

Se usar o outro método getDefaultInstance:
Session session = Session.getDefaultInstance(props);
tirando o parametro auth, com login e senha, dai vai autenticar lá no
connect(mailSMTPServer, "[email removido]", "*****")

Ah sim hehe, valeu romarcio.

evertonsilvagomesjav

Agora testando aqui, me gerou uma exception dessa forma com o Authenticator

SimpleAuth auth = null;   
	        auth = new SimpleAuth("[email removido]","*****");   
	           
	        //Session - objeto que ira realizar a conexão com o servidor   
	        /*Como há necessidade de autenticação é criada uma autenticacao que  
	         * é responsavel por solicitar e retornar o usuário e senha para  
	         * autenticação */   
	        Session session = Session.getDefaultInstance(props, auth);   
	        session.setDebug(true); //Habilita o LOG das ações executadas durante o envio do email   
	
	        //Objeto que contém a mensagem   
	        Message msg = new MimeMessage(session);   
	  
	        try {   
	            //Setando o destinatário   
	            msg.setRecipient(Message.RecipientType.TO, new InternetAddress(to));   
	            //Setando a origem do email   
	            msg.setFrom(new InternetAddress(from));   
	            //Setando o assunto   
	            msg.setSubject(subject);   
	            //Setando o conteúdo/corpo do email   
	            msg.setContent(message,"text/plain");   
	  
	        } catch (Exception e) {   
	            System.out.println(">> Erro: Completar Mensagem");   
	            e.printStackTrace();   
	        }   
	           
	        //Objeto encarregado de enviar os dados para o email   
	        Transport tr;   
	        try {   
	            tr = session.getTransport("smtp"); //define smtp para transporte   
	            /*  
	             *  1 - define o servidor smtp  
	             *  2 - seu nome de usuario do gmail  
	             *  3 - sua senha do gmail  
	             */   
	           // tr.connect(mailSMTPServer, "[email removido]", "*****");  
	            tr.connect();
	            msg.saveChanges(); // don't forget this   
	            
	            //envio da mensagem   
	            tr.sendMessage(msg, msg.getAllRecipients());   
	           
	            tr.close();
Ronald_lima

Vlw Romarcio!!!

Abrçs

romarcio

evertonsilvagomesjava:
Agora testando aqui, me gerou uma exception dessa forma com o Authenticator

Não gerou nenhum erro pra mim, qual exceção que está gerando?

evertonsilvagomesjav

Esta:

com.sun.mail.smtp.SMTPSendFailedException: 530-5.5.1 Authentication Required. Learn more at                              
530 5.5.1 http://mail.google.com/support/bin/answer.py?answer=14257 g25sm6772413yhc.39

	at com.sun.mail.smtp.SMTPTransport.issueSendCommand(SMTPTransport.java:1829)
	at com.sun.mail.smtp.SMTPTransport.mailFrom(SMTPTransport.java:1368)
	at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:886)
	at com.mail.sendMail.SendMail.sendMail(SendMail.java:100)
	at com.mail.sendMail.ThreadMail.run(ThreadMail.java:20)
	at java.lang.Thread.run(Unknown Source)
250 2.1.5 Flushed g25sm6772413yhc.39
com.sun.mail.smtp.SMTPSendFailedException: 530-5.5.1 Authentication Required. Learn more at                              
530 5.5.1 http://mail.google.com/support/bin/answer.py?answer=14257 g25sm6772413yhc.39

	at com.sun.mail.smtp.SMTPTransport.issueSendCommand(SMTPTransport.java:1829)
	at com.sun.mail.smtp.SMTPTransport.mailFrom(SMTPTransport.java:1368)
	at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:886)
	at com.mail.sendMail.SendMail.sendMail(SendMail.java:100)
	at com.mail.sendMail.ThreadMail.run(ThreadMail.java:20)
	at java.lang.Thread.run(Unknown Source)
>> Erro: Envio Mensagem

Ai coloquei esta linha : props.put("mail.smtp.auth", "true"); //ativa autenticacao

Deu essa exception, porem eu to enviando um email com usuario do msn, e autenticando com o do gmail.

DEBUG: JavaMail version 1.4.3
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 Microsystems, Inc], pop3s=javax.mail.Provider[STORE,pop3s,com.sun.mail.pop3.POP3SSLStore,Sun Microsystems, Inc], smtp=javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc]}
DEBUG: successfully loaded resource: /META-INF/javamail.default.address.map
DEBUG: setDebug: JavaMail version 1.4.3
DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc]
DEBUG SMTP: useEhlo true, useAuth true
>> Erro: Envio Mensagem
javax.mail.AuthenticationFailedException: failed to connect, no password specified?
	at javax.mail.Service.connect(Service.java:325)
	at javax.mail.Service.connect(Service.java:172)
	at javax.mail.Service.connect(Service.java:121)
	at com.mail.sendMail.SendMail.sendMail(SendMail.java:96)
	at com.mail.sendMail.ThreadMail.run(ThreadMail.java:20)
	at java.lang.Thread.run(Unknown Source)
romarcio

Conforme:

<blockquote>

DEBUG: JavaMail version 1.4.3

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 Microsystems, Inc], pop3s=javax.mail.Provider[STORE,pop3s,com.sun.mail.pop3.POP3SSLStore,Sun Microsystems, Inc], smtp=javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc]}

DEBUG: successfully loaded resource: /META-INF/javamail.default.address.map

DEBUG: setDebug: JavaMail version 1.4.3

DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc]

DEBUG SMTP: useEhlo true, useAuth true

>> Erro: Envio Mensagem

javax.mail.AuthenticationFailedException: failed to connect, no password specified?

at javax.mail.Service.connect(Service.java:325)

at javax.mail.Service.connect(Service.java:172)

at javax.mail.Service.connect(Service.java:121)

at com.mail.sendMail.SendMail.sendMail(SendMail.java:96)

at com.mail.sendMail.ThreadMail.run(ThreadMail.java:20)

at java.lang.Thread.run(Unknown Source)</blockquote>

Parece que a senha é que está dando problemas: javax.mail.AuthenticationFailedException: failed to connect, no password specified?

evertonsilvagomesjav

Estranho utilizando a mesma senha no connect funciona.

tr.connect(mailSMTPServer, "[email removido]", "***");

Sem utilizar o authenticator.

romarcio

Não sei o que pode estar acontecendo.

Cheguei a copiar o pedaço de código que vc postou anteriormente, e substitui pelo meu, só mudei a senha e o usuario e funcionou legal.

A unica diferença que vejo é na versão do javamail, o seu é 1.4.3 o meu é 1.4.2, mas não deve ser isso.

evertonsilvagomesjav

Eu comentei algumas linhas de codigo pra ver o funcionamento e tals, tem necessidade de deixar isso tudo?

props.put("mail.transport.protocol", "smtp"); //define protocolo de envio como SMTP props.put("mail.smtp.starttls.enable","true"); props.put("mail.smtp.host", mailSMTPServer); //server SMTP do GMAIL props.put("mail.smtp.auth", "true"); //ativa autenticacao props.put("mail.smtp.user", from); //usuario props.put("mail.debug", "true"); props.put("mail.smtp.port", mailSMTPServerPort); //porta props.put("mail.smtp.socketFactory.port", mailSMTPServerPort); //mesma porta para o socket props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); props.put("mail.smtp.socketFactory.fallback", "false");

Porém o erro nao esta ai pq descomentei deu o mesmo erro rsrs

evertonsilvagomesjav

O Authenticator que vc ta usando esta só assim?

class SimpleAuth extends Authenticator {   
	   
                     public String username = null;   
	    public String password = null;   
	  
	  
	    public SimpleAuth(String user, String pwd) {   
	        username = user;   
	        password = pwd;   
 }
romarcio
evertonsilvagomesjava:
O Authenticator que vc ta usando esta só assim?
class SimpleAuth extends Authenticator {   
	   
            public String username = null;   
	    public String password = null;   
	  
	  
	    public SimpleAuth(String user, String pwd) {   
	        username = user;   
	        password = pwd;   
 }
Tem esse método também, que vai passar o usuario e a senha para o autenticador.
protected PasswordAuthentication getPasswordAuthentication() {
		return new PasswordAuthentication (username,password);
	}
romarcio

evertonsilvagomesjava:
Eu comentei algumas linhas de codigo pra ver o funcionamento e tals, tem necessidade de deixar isso tudo?

props.put("mail.transport.protocol", "smtp"); //define protocolo de envio como SMTP props.put("mail.smtp.starttls.enable","true"); props.put("mail.smtp.host", mailSMTPServer); //server SMTP do GMAIL props.put("mail.smtp.auth", "true"); //ativa autenticacao props.put("mail.smtp.user", from); //usuario props.put("mail.debug", "true"); props.put("mail.smtp.port", mailSMTPServerPort); //porta props.put("mail.smtp.socketFactory.port", mailSMTPServerPort); //mesma porta para o socket props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); props.put("mail.smtp.socketFactory.fallback", "false");

Porém o erro nao esta ai pq descomentei deu o mesmo erro rsrs

Nesse exemplo, essas não são necessárias:

props.put("mail.smtp.socketFactory.port", mailSMTPServerPort); //mesma porta para o socket   
	        props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");   
	        props.put("mail.smtp.socketFactory.fallback", "false");
evertonsilvagomesjav
romarcio:
evertonsilvagomesjava:
O Authenticator que vc ta usando esta só assim?
class SimpleAuth extends Authenticator {   
	   
            public String username = null;   
	    public String password = null;   
	  
	  
	    public SimpleAuth(String user, String pwd) {   
	        username = user;   
	        password = pwd;   
 }
Tem esse método também, que vai passar o usuario e a senha para o autenticador.
protected PasswordAuthentication getPasswordAuthentication() {
		return new PasswordAuthentication (username,password);
	}

Oo nao sabia que o Session utilizava esse metodo rs.

Agora veja só romarcio aqui: props.put("mail.smtp.user", from); // consta meu email [email removido]

Na autenticaçao consta: "[email removido]"

Eu to recebendo o email do [email removido], nao era pra receber do [email removido] com o smtp do gmail?

romarcio

Acho que dependendo do servidor de email, isso funciona ou não.

Enviando pelo gmail, não funcionou.
Enviando pelo msn, funcionou.
Enviando pelo bol, deu erro no enviou, o bol nem aceita se propriedade from estiver diferente do email de autenticação.

evertonsilvagomesjav

romarcio:

Acho que dependendo do servidor de email, isso funciona ou não.

Enviando pelo gmail, não funcionou.
Enviando pelo msn, funcionou.
Enviando pelo bol, deu erro no enviou, o bol nem aceita se propriedade from estiver diferente do email de autenticação.

Poutz romarcio verdade, testei constou isso mesmo!

Muito obrigado ai pela ajuda! =D

romarcio

evertonsilvagomesjava:
romarcio:

Acho que dependendo do servidor de email, isso funciona ou não.

Enviando pelo gmail, não funcionou.
Enviando pelo msn, funcionou.
Enviando pelo bol, deu erro no enviou, o bol nem aceita se propriedade from estiver diferente do email de autenticação.

Poutz romarcio verdade, testei constou isso mesmo!

Muito obrigado ai pela ajuda! =D

De nada, eu não tinha percebido isso também.
Uma curiosidade sobre o gmail, ele também pode ser usado pela porta 587 ao invés da 465, não sei qual a diferença, mas pode.

evertonsilvagomesjav
romarcio:
evertonsilvagomesjava:
romarcio:
Acho que dependendo do servidor de email, isso funciona ou não.

Enviando pelo gmail, não funcionou.
Enviando pelo msn, funcionou.
Enviando pelo bol, deu erro no enviou, o bol nem aceita se propriedade from estiver diferente do email de autenticação.

Poutz romarcio verdade, testei constou isso mesmo!

Muito obrigado ai pela ajuda! =D

De nada, eu não tinha percebido isso também.
Uma curiosidade sobre o gmail, ele também pode ser usado pela porta 587 ao invés da 465, não sei qual a diferença, mas pode.

Hum bacana.

São tantas coisas que eu vou fazendo testes aqui percebo que funciona tb, outra coisa que eu vi é a respeito da classe Transport.

Temos essas linhas por exemplo:

Transport tr;   
	        
	        try {   
	            tr = session.getTransport("smtp"); //define smtp para transporte   
	           
	            tr.connect();
	            
	            msg.saveChanges(); // don't forget this   
	            
	            //envio da mensagem   
	          tr.sendMessage(msg, msg.getAllRecipients());   
	           	          
	           
	           tr.close();

Usando so o metodo statico Transport.send(msg) funciona do mesmo jeito:

try {   
	           
	            msg.saveChanges(); // don't forget this   

                             Transport.send(msg); // envia normalmente.
	       	           
	        } catch (Exception e) {   
	            // TODO Auto-generated catch block   
	            System.out.println(">> Erro: Envio Mensagem");   
	            e.printStackTrace();   
	        }
Criado 11 de outubro de 2010
Ultima resposta 13 de out. de 2010
Respostas 32
Participantes 4