style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">

error javamail el enviar correo distinto de gmail

Hola,

tengo un problema al enviar el correo con un servidor distinto a google ya que no consigo conectarme y no tengo ningun firewall activo, son de los servicios que provee outlook.

El ejemplo lo saque de aqui: http://felinfo.blogspot.mx/2009/10/enviar-un-correo-usando-gmail-desde.html

Nombre del servidor: pod51011.outlook.com
Puerto: 587
Método de cifrado: TLS

he cambiado los parametros de usuario, password, host pero me dice que el usuario no puede autentificarse.

final String miCorreo = "soporte@empresa.org.mx";
final String miContraseña = "micontraseña";
final String servidorSMTP = "pod51011.outlook.com";
final String puertoEnvio = "587";

Mucho agradecere su incondicional apoyo.

Saludos...

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de neko069

Buscador de aquí mismo...

Éste tipo de errores ya se han tratado con anterioridad, con el buscador aquí mismo encontré varios temas que, o ya están solucionados (hasta con código) y otros que incluyen ligas útiles.

liga 1.
liga 2.
liga 3.
liga 4.

Imagen de garoalex_85

continua el mismo problema

HOla neko069 muchas gracias por tu respuesta, te comento que ya he probado y si me funciona puesto que utilizo la libreria javamail y habilito el uso de TLS pero de la misma manera continuo sin poderme conectar, a lo que no se es que si por ser un servidor (pod51011.outlook.com) rentado a Outlook tienen politicas de seguridad o restricciones pues como te comento no me permite realizar la conexión.

Gracias por tu valiosa respuesta

Imagen de francisco.santiagoj

@garoalex_85

Tengo un código para mandar correo desde un servidor interno (EXCHANGE) deja lo busco para postear un pedazo de código y ver si puedes sacarle algo de ahí.

Saludos

Imagen de francisco.santiagoj

Mi clase Mail()

Esta es mi clase mail que utilice para todos los envios de correo, espero te pueda servir en algo.

package net.company.mail;

import java.util.ArrayList;
import java.util.Properties;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

public class MailSender {

         protected String domain;
         protected String host;
         protected String port;
         protected String username;
         protected String password;
       
        public MailSender(String domain, String host, String port, String username,
                        String password) {
                super();
                this.domain = domain;
                this.host = host;
                this.port = port;
                this.username = username;
                this.password = password;
        }
        public String getDomain() {
                return domain;
        }
        public void setDomain(String domain) {
                this.domain = domain;
        }
        public String getHost() {
                return host;
        }
        public void setHost(String host) {
                this.host = host;
        }
        public String getPort() {
                return port;
        }
        public void setPort(String port) {
                this.port = port;
        }
        public String getUsername() {
                return username;
        }
        public void setUsername(String username) {
                this.username = username;
        }
        public String getPassword() {
                return password;
        }
        public void setPassword(String password) {
                this.password = password;
        }
       
        public MailSender() {
               
        }
        public void sendEmail(ArrayList<String> to, String subject, String content){
/*(1)*/
               
                Properties properties = new Properties();
        properties.setProperty("mail.smtp.host", host);
        properties.setProperty("mail.smtp.starttls.enable", "true");
       
                properties.setProperty("mail.smtp.port", port);
        properties.setProperty("mail.smtp.user", username);
        properties.setProperty("mail.smtp.auth", "true");
                               
        Session session = Session.getInstance(properties);
        session.setDebug(true);
        /*(3)*/
        MimeMessage message  = new MimeMessage(session);
        try{
                message.setFrom(new InternetAddress(username));
                message.setSubject(subject);
                InternetAddress[] address = new InternetAddress[to.size()];
                for(int i = 0; i < to.size(); i++){
                        address[i] = new InternetAddress(to.get(i));                   
                }
                message.setRecipients(Message.RecipientType.TO, address);
                message.setText(content, "ISO-8859-1", "html");
                /*(4)*/
                Transport transport = session.getTransport("smtp");
                transport.connect(username, password);
                transport.sendMessage(message, message.getAllRecipients());
                transport.close();
        }
        catch (Exception e) {
                       
                }
               
        }
}

Imagen de garoalex_85

Client was not authenticated

he utilizado alguna de las cosas de tu clase sobre todo la de Properties y nada.

Gracias de antemano.

Properties props = new Properties();
props.put("mail.smtp.user", miCorreo);
props.put("mail.smtp.host", servidorSMTP);
props.put("mail.smtp.port", puertoEnvio);
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.socketFactory.port", puertoEnvio);
props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
props.put("mail.smtp.socketFactory.fallback", "false");

/*****************DEBUG*******************/

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

DEBUG: SMTPTransport trying to connect to host "pod51011.outlook.com", port 587

DEBUG SMTP RCVD: 220 pod51011.outlook.com Microsoft ESMTP MAIL Service ready at Thu, 21 Feb 2013 18:28:19 +0000

DEBUG: SMTPTransport connected to host "pod51011.outlook.com", port: 587

DEBUG SMTP SENT: EHLO NOMBREDEMIEQUIPO

DEBUG SMTP RCVD: 250-pod51011.outlook.com Hello
250-SIZE 36700160
250-PIPELINING
250-DSN
250-ENHANCEDSTATUSCODES
250-STARTTLS
250-AUTH
250-8BITMIME
250-BINARYMIME
250 CHUNKING

DEBUG SMTP Found extension "SIZE", arg "36700160"
DEBUG SMTP Found extension "PIPELINING", arg ""
DEBUG SMTP Found extension "DSN", arg ""
DEBUG SMTP Found extension "ENHANCEDSTATUSCODES", arg ""
DEBUG SMTP Found extension "STARTTLS", arg ""
DEBUG SMTP Found extension "AUTH", arg ""
DEBUG SMTP Found extension "8BITMIME", arg ""
DEBUG SMTP Found extension "BINARYMIME", arg ""
DEBUG SMTP Found extension "CHUNKING", arg ""
DEBUG SMTP: Attempt to authenticate
DEBUG SMTP: use8bit false
DEBUG SMTP SENT: MAIL FROM:
DEBUG SMTP RCVD: 530 5.7.1 Client was not authenticated

DEBUG SMTP SENT: QUIT
javax.mail.SendFailedException: Sending failed;
nested exception is:
javax.mail.MessagingException: 530 5.7.1 Client was not authenticated

Imagen de ezamudio

no se puede

No vas a poder enviar correo usando el servidor de gmail si la dirección de origen no es de un usuario real de gmail. Eso es algo que se llama relay y es un hoyo gigantesco de seguridad. Veo que también quisiste usar después un servidor de outlook.com que seguramente tampoco te va a dejar enviar correos a menos que te autentiques con un usuario legítimo de ellos y el correo que quieres enviar tenga una dirección real de usuario de ese servicio.

Imagen de garoalex_85

Client was not authenticated

En Gmail me funciono correctamente pero use un correo real de gmail.
No funciona cuando cambio los parametros del servidor, puerto y correo de autentificación (el correo que utilice para autentificarme fue creado bajo el nombre de mi organización por ejemplo soporte@empresa.org.mx) ya que outlook les brinda el servicio

El correo al que te refieres tiene que ser con terminación @outlook.com ó @organizacion.org.mx?

Nombre del servidor: pod51011.outlook.com
Puerto: 587
Método de cifrado: TLS

entonces en conclusión no se puede por políticas de seguridad verdad????

Imagen de linux-genesis

Lo probe en un Servidor Exchanche y funciono!!

Hola garoalex_85, yo proble el codigo en un Servidor Exchange del tipo de servidor: outlook.office365.com , asi que investigue cual era el puerto de este servidor en la pagina http://technet.microsoft.com/es-es/library/hh852522.aspx y encontre que es TCP 587*
Retransmisión de Protocolo simple de transferencia de correo (SMTP).

Por lo que mi session la cargue con la siguiente informacion:

                // Propiedades de la Conexion
                Properties properties = new Properties();
                properties.put("mail.smtp.host", "outlook.office365.com");
                properties.put("mail.smtp.starttls.enable", "true");
                properties.put("mail.smtp.port","587");
                //properties.put("mail.smtp.user", "usuario@empresa.com");
                properties.put("mail.smtp.auth", "true");

Solo aclaro un escenario que se me presento:

Cuando intente enviar correo a varios destinatarios con :  message.setRecipients(Message.RecipientType.TO, address);
Al principio me marco el Error de problemas de conexion asi que decidi primero enviar correo a un solo destino de la siguiente manera:

message.addRecipient(Message.RecipientType.TO, new InternetAddress("user@empresa.com"));

Y oala!!! se envio correctamente, asi que decidi nuevamente probar el envio masivo:

//Construir el mensaje
                MimeMessage message = new MimeMessage(session);
                try {
                        message.setFrom(new InternetAddress("user@empresa.com"));
                        //message.addRecipient(Message.RecipientType.TO, new InternetAddress("user@empresa.com"));
                        message.setSubject("Java Mail");                       
                       
                        List<String> to = new ArrayList<String>();
                        to.add("user1@empresa.com");
                        to.add("user2@empresa.com");
                       
                        InternetAddress[] address = new InternetAddress[to.size()];
                       
                        for(int i = 0; i < to.size(); i++){
                                address[i] = new InternetAddress(to.get(i));
                        }
                       
                        message.setRecipients(Message.RecipientType.TO, address);
                        //message.setRecipient(Message.RecipientType.TO, message);
                        message.setText("Mensaje Mail Test ","ISO-8859-1", "html");
                       
                        //Enviar el correo
                        Transport t = session.getTransport("smtp");
                        t.connect("user@empresa.com","contraseña");
                        t.sendMessage(message, message.getAllRecipients());
                       
                        //Cierre
                        t.close();
                       
                } catch (AddressException e) {
                        e.printStackTrace();
                } catch (MessagingException e) {
                        e.printStackTrace();
                }      

Y todo funciona correctamente , espero sirva en algo mi humilde aportación.

Saludos a la comunidad....

style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">