1. ¡OFERTA! con cupón "DIRVPS": hosting por $0,01 y también VPS Linux y Windows por $0,01 el primer mes por Interserver ← publi
    Descartar aviso
Descartar aviso
Al usar este sitio web, aceptas que nosotros y nuestros socios podamos establecer cookies para fines tales como personalizar el contenido y la publicidad. Más información.

Dónde lo hago?: "Please turn on SMTP Authentication in your mail client"

Tema en 'Asuntos Técnicos' iniciado por Samanta, 22 Feb 2016.

  1. Samanta

    Samanta Usuario activo

    Hola.

    Con conexión al puerto 25 y sockets:
    PHP:
    fsockopen($MX25)
    escribo un programa que escribe en el servidor remoto y en ése puerto mensajes de texto de eventos que suceden en mi máquina.

    Todo vá muy bien hasta que llego al comando "RCPT TO:".

    En ése punto el servidor remoto me responde:

    "Please turn on SMTP Authentication in your mail client"

    ... pero no estoy utilizando OUTLOOK, ni similar.

    Mi cliente de correo sería mi script PHP.
    Que debo hacer en mi servidor EXIM para colocar "SMTP Authentication = ON" ???


    Gracias
     
  2.  
  3. Rafa de la Torre

    Rafa de la Torre Nuevo usuario

    Tú misma te has respondido, es tu script PHP el que debería autentificarse con el servidor SMTP antes de mandarle el RCPT TO:, preferentemente después de enviarle el EHLO. No tienes que configurar nada en el Exim.

    Si no sabes qué debes mandarle al servidor para realizar la autentificación, quizá te venga mejor el utilizar PHPMailer o algo similar, que ya te lo dan todo hecho.
     
  4. Samanta

    Samanta Usuario activo

    Gracias LAPSUM.

    No me queda claro.

    Si le envio un mensaje a bill@microsoft.com, ¿cómo voy a autenticarme en microsoft.com?
    (no soy el usuario bill).

    Por favor ténme paciencia.
     
  5. leny

    leny Usuario activo

    lo que pide es que se authentique que el usuario del cual estas intentando enviar existe realmente en el servidor. Por eso pide autenticar, no te dejara enviar si no lo haces. Si estas intentando enviar de un correo, se supone que tienes las credenciales para utilizarlo. Por eso pide que autentiques que eres parte del servidor por el cual se esta enviando, no es que autentiques el correo a quien se lo envias, es del que estas enviando.
     
  6. Rafa de la Torre

    Rafa de la Torre Nuevo usuario

    Si quieres enviar un correo a bill@microsoft.com lo que haces es entregarle el correo al servidor SMTP de tu proveedor para que él hable con el servidor de Microsoft y le entregue a su vez el correo. Aunque sería posible hablar directamente con el servidor SMTP de Microsoft (uno de los muchos que tendrán) para que entregase el correo de forma local, nada te garantizaría que dicho servidor no te fuera a pedir la autentificación de todas maneras si sospecha que no eres otro servidor SMTP hablando con él.

    Dicho de otro modo, si quieres enviar una postal a alguien no vas a su casa y dices que eres el cartero. Lo que haces es ir a una estafeta de Correos (que sería como el servidor SMTP de tu proveedor) y les das la carta para que la entreguen. Pero no la entregan ellos en realidad, lo que hacen es mandarla a la estafeta del barrio donde vive el destinatario (que sería, por ejemplo, el servidor SMTP de Microsoft) y ellos son los que se encargan de entregar la postal.

    La cuestión aquí es que, si quieres enviar un correo usando el servidor SMTP de tu proveedor de Internet o de hosting o lo que sea, vas a tener que autentificarte para que te deje hacer el envío. La razón es muy sencilla: si se pudiera enviar correo a cualquier dirección sin necesidad de usuario y password tendrías a todos los spammers haciendo cola para colapsar el servidor.
     
  7. Samanta

    Samanta Usuario activo

    Hola LAPSUM.

    Me ha encantado la manera como me haz explicado "si quieres enviar una postal a alguien no vas a su casa y dices que eres el cartero"...

    Justamente éso es lo que estava intentando.
    Muchas gracias!

    Por fín lo he comprendido.

    Pero te cuento que el script lo ejecuto sobre mi propia máquina, es decir:
    FROM: <samanta@miservidor.com>

    y el script.php lo tengo ADENTRO del servidor [miservidor.com]
    es decir que ya estoy en el sistema, ya me he autenticado puesto que el script lo abro desde dentro de mi máquina que es donde existe la cuenta de correo samanta@miservidor.com.

    No quiero enviar los MSJs desde miservidor.com/webmail
    y tampóco utilizar
    PHP:
    <?php
    mail
    ('bill@microsoft.com''Proceso #755 existoso''El resultado');
    ?>
    Entonces te agradeceré si me díces por favor de que manera indicarle al puerto 25 de "microsoft.com" que ya estoy autenticada, y que efectivamente la cuenta <samanta@miservidor.com> sí existe en el servidor.


    De nuevo muchas gracias LAPSUM.

    :)
     
  8. Rafa de la Torre

    Rafa de la Torre Nuevo usuario

    Creo que ahí es donde te estás haciendo un lío. El hecho de que el script esté en la misma máquina que el servidor SMTP no significa nada, y tampoco es al servidor SMTP de microsoft.com a quien le tienes que decir que estás autentificada. Tu script no tiene que hablar con el servidor de Microsoft para nada, de hecho.

    La forma en que el servidor SMTP de miservidor.com determina si te tiene que pedir el usuario y password no depende de si el script está en la misma máquina o no, sino de a quién le estás enviando el mensaje. Si el correo lo estás enviando a un dominio que no está alojado en ese mismo servidor, entonces tienes que poner el usuario y el password. Piensa que si el servidor tuviera desactivada la autentificación para las conexiones locales te podrían colar un script chungo en el servidor y tendría carta blanca para spamear a gusto.

    En resumen:

    Entendiendo por tu mensaje que el servidor SMTP lo tienes en la misma máquina que el script, entonces la conexión la tienes que hacer al puerto 25 de la propia máquina, y suponiendo que el correo lo envíes a bill@microsoft.com, dado que el correo de microsoft.com no está alojado en tu máquina, tienes que usar tu usuario y password en esa conexión para que te deje enviar el correo.
     
  9. Samanta

    Samanta Usuario activo

    Gracias de nuevo.

    Lo que he hecho es:

    saludar a microsoft.com en el puerto 25.

    Luego de recibir su "OK" decirle:

    HELO hostname.miservidor.com
    el díce "hola"
    VRFY bill@microsoft.com
    el díce "no puedo confirmar por seguridad"
    RCPT TO: <bill@microsoft.com>
    el díce "Please turn on SMTP Authentication in your mail client"

    en éste punto,
    si estavamos "conversando" en el puerto 25,
    de que manera le informo a microsoft que si existo en mi servidor?
    y que la cuenta desde la cuál quiero escibir: <samanta@miservidor.com> es 100% válida?

    ¿acaso el programa EXIM de miservidor.com habla diferente ?
    por lo que he leido EXIM o PHPMAILER envía los mismos mensajes:

    HELO
    MAIL FROM:
    RCPT TO:
    DATA
    QUIT

    y también los envía abriendo un socket en el puerto 25 del MX de microsoft.com

    ¿estoy equivocada?

    Gracias!
     
  10. Rafa de la Torre

    Rafa de la Torre Nuevo usuario

    Me temo que o bien estás bastante desencaminada o bien soy yo quien no termina de entender lo que quieres hacer. A ver si lo he entendido bien:

    ¿Por qué a microsoft.com directamente? Ya te he explicado que la conexión la tienes que hacer a tu propio servidor SMTP, el que gestiona el correo de miservidor.com, que o bien estará en tu propia máquina o bien te lo proporcionará tu proveedor. Dices que en tu servidor tienes instalado Exim, ¿no? Pues te tienes que conectar al Exim, no a microsoft.com.

    Ese no es el problema que estás teniendo. El problema no es que microsoft.com no se crea que tu cuenta existe; de hecho, no le importa si tu cuenta existe o no: si quieres poner como remitente perico@delospalot.es no hay nada que te lo impida, aunque sea una dirección falsa. Además, fíjate bien en que te está rechazando al decirle el destinatario pero ni siquiera le has mandado aún el remitente. ¿Cómo iba a ser el problema que el servidor de microsoft.com no sabe si tu cuenta existe o no si ni siquiera le has dicho aún qué cuenta es?

    Si te estás conectando directamente a microsoft.com, tal y como dices, entonces tu servidor Exim ahí no interviene de ninguna manera. Estás haciendo una conexión directa al servidor SMTP de destino, tu servidor SMTP está ahí sin hacer nada.

    De nuevo, en resumen:
    1. La conexión la tienes que hacer a localhost, a tu Exim, no a microsoft.com. De nuevo, estás haciéndote pasar por el cartero, y así no es como funciona esto. Tienes que darle la carta al cartero de tu barrio, que es tu servidor Exim, y él ya se encargará de hacerla llegar al destinatario.
    2. Si quieres mandar un correo a una dirección que no sea de @miservidor.com, te tienes que autentificar. O dicho de otra forma, le tienes que dar tu usuario y password, lo que implica mandarle el comando AUTH y el tipo de autentificación que quieras realizar. En este enlace puedes ver cómo se hace: http://systemadmin.es/2009/01/comprovar-mediante-telnet-la-autenticacion-smtp
    Tengo una curiosidad: ¿por qué no puedes usar la función mail() de PHP?
     
  11. Samanta

    Samanta Usuario activo

    Gracias LAPSUM.

    Creo que tu ejemplo es excelente:
    quiero "ser la cartera".
    Por eso abro con éxito una conexión al puerto 25
    del servidor MX de microsoft.com

    Y él me responde "Bienvenida"...

    Con tu explicación, sí, precisamente quiero que mi script PHP entregue la carta.

    Y claro que sí le digo el remitente, lo hago cuando le escribo:

    MAIL FROM: <samanta@miservidor.com>

    y el servidor remoto responde "Ok"


    Si yo quiero presentarme a microsoft.com como "LA CARTERA"
    que comando me hace falta?
    cómo sabe
    microsoft.com que no me he autenticado "en mi propia casa" ???


    Gracias de nuevo
     
  12. Rafa de la Torre

    Rafa de la Torre Nuevo usuario

    ¿Pero me has entendido cuando te he dicho que así no es como se hace?

    Una vez más, se la tienes que entregar al servidor Exim que tienes instalado en tu máquina. No se la tienes que entregar a microsoft.com directamente.

    Eso no es lo que pone en tu anterior post:

    Sería más fácil para nosotros ayudarte si no nos omitieras información.

    Aún no entiendo por qué esa insistencia en mandar el correo conectándose directamente al SMTP del destinatario teniendo un servidor SMTP instalado en la misma máquina, y para el que tienes credenciales de autentificación. ¿Por qué tienes que entregarlo directamente en el SMTP del destinatario?

    No lo sabe, ni tampoco hace falta que lo sepa. No tienes que entregarle el correo directamente al SMTP del destinatario. Esa tarea se la tienes que dejar a tu Exim. No te compliques tanto la vida y deja que tu Exim se encargue de entregar el mensaje.

    El servidor de microsoft.com te está diciendo que si quieres entregarle un mensaje te tienes que autentificar con él. Con el servidor de microsoft.com. No con tu servidor. Es lo que llevo varios posts intentando explicarte: que no tienes que hacerte pasar por el cartero; la razón por la que el servidor de microsoft.com te está rechazando es precisamente porque te estás intentando hacer pasar por el cartero, y estás intentando entregar la carta en la estafeta del barrio del destinatario llevando puesto un disfraz de carnaval en vez del uniforme.

    En serio, no te compliques tanto la vida. Conéctate al servidor Exim de tu máquina, al puerto 25 de localhost, y que él se encargue de hablar con el servidor que tenga que hablar, que ya se entenderán entre ellos.
     


Alojamiento web, Hosting Reseller, Servidores Dedicados - All in Hosting


    
    
    
    
Blog · Sitios amigos: GuiaHosting · Unidominios · Interalta ·