Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Problema al enviar Mail (https://www.clubdelphi.com/foros/showthread.php?t=56161)

jcarteagaf 08-05-2008 22:45:36

Problema al enviar Mail
 
Hola, estoy haciendo un programa que debe enviar un mail con un archivo adjunto. Estoy usando Delphi 7 y las Indy 10. He usado un ejemplo que pusieron aca.

Mi codigo es el siguiente:

Código Delphi [-]
 gcUsuarioCorreo.ReadParams;
  if not gcUsuarioCorreo.CheckParams then
  begin
    Mensajeerror('No se definió los parametros de Envio de Datos');
    actSetup.Execute;
    exit;
  end;
  with idMessage do
  begin
    Clear;
    Body.Clear;
    Body.Add('COMPENSA: Los datos adjuntos corresponden al '+FormatDateTime('dd/mm/yyyy',date));
    From.Address := gcUsuarioCorreo.Correo;
    Recipients.EMailAddresses := 'jcafcompensa@yahoo.com';
    Subject := 'Datos correspondientes al '+FormatDateTime('dd/mm/yyyy',date);
    Priority := TidMessagePriority(mpHigh);
    TidAttachmentFile.Create(idMessage.MessageParts,sFileZip);
  end;
  with idSMTP do
  begin
    Username := gcUsuarioCorreo.Usuario;
    Password := gcUsuarioCorreo.Password;
    Host := gcUsuarioCorreo.Host;
    Port := gcUsuarioCorreo.Puerto;
    if Not Connected then
      Connect();
    try
      try
        Controles(true);
        IdSMTP.Send(IdMessage);
      finally
        Controles(false);
        Disconnect;
      end;
      MensajeError('Enviado Correctamente');
    except
      ON E: EIdReplyError do
      begin
        MensajeError('No se ha podido enviar el email.' + #13 +
            'Incorrecto el email o el usuario o el password.');
      end;
      on E: EFOpenError do
      begin
        MensajeError('No se ha podido enviar el email.' + #13 +
          'Fichero Adjunto desconocido o erróneo.');
      end;
      on E: EIdSocketError do
      begin
        MensajeError('No se ha podido enviar el email.'+ #13 +
           'Host desconocido o incorrecto.');
      end
      else
      begin
        MensajeError('Fallo en el envio de email');
        raise;//para que muestre el error.
      end;
    end;
    if connected then
      Disconnect;
  end;
Sin embargo al momento de ejecutar el programa lanza el siguiente erro:
Must Issue a STARTTLS command first

Alguien podria darme una mano con esto. Gracias.

BlueSteel 09-05-2008 00:31:44

Hola... en realidad se parece al codigo que utilizo... pero no le veo el fallo

Código Delphi [-]
     With IdMessage Do
     Begin
          Body.Clear;
          Body.Add(vMensaje.Text);
          From.Text := 'correoenvio@dominio.cl';
          Recipients.EMailAddresses := vPara.Text;
          Subject := vAsunto.Text;
          Priority := TidMessagePriority(mpHighest);
          TidAttachment.Create(IdMessage.MessageParts,Concat('O:\',IntToStr(Ordenes.IBQ_Select['Ord_Numero']),'.pdf'));
     End;
     With IdSMTP do
     Begin
          Username := 'casilla_correo';
          Password := 'clave_casilla';
          Host     := '192.168.1.3'; // Ip del Servidor o nombre del Host
          Port     := 25;
          try
             Connect;
             Try
                Send(IdMessage);
             Finally
                Disconnect;
             End;
             ShowMessage('Se envio la Orden de Compra en forma correcta');
          Except
                On E: EIdProtocolReplyError Do
                   ShowMessage('E-Mail no se ha podido enviar');
                On E: EFOpenError Do
                   Begin
                        ShowMessage('E-Mail no se ha podido enviar' + #13 +
                                    'Fichero Adjunto desconocido o erróneo.');
                   end;
                On E: EIdSocketError Do
                   Begin
                        ShowMessage('E-Mail no se ha podido enviar'+ #13 +
                                    'Host desconocido o incorrecto.');
                   end
                Else
                   ShowMessage('Fallo en el envio de email');
          End;
         If Connected Then Disconnect;
     End;
     Close;

jcarteagaf 09-05-2008 16:34:32

Sigo con el problema, el error mostrado ha sido interceptado por el try except
Código Delphi [-]
      ON E: EIdReplyError do
      begin
        MensajeError('No se ha podido enviar el email.' + #13 +
            'Incorrecto el email o el usuario o el password.');

No puede ser incorrecto ya que uso mi mail de gmail para enviar. uso el puerto 587. Que puede estar mal?

Vamos muchachos, se que alguien por ahi tiene la solución. Denme una manita, que mientras no entregue esto no puedo solicitar las vacaciones que ya me tocan....:)

Gracias de antemano....

BlueSteel 09-05-2008 17:02:18

Cita:

Empezado por jcarteagaf (Mensaje 285562)
Sigo con el problema, el error mostrado ha sido interceptado por el try except

Código Delphi [-] ON E: EIdReplyError do
begin
MensajeError('No se ha podido enviar el email.' + #13 +
'Incorrecto el email o el usuario o el password.');




No puede ser incorrecto ya que uso mi mail de gmail para enviar. uso el puerto 587. Que puede estar mal?

Vamos muchachos, se que alguien por ahi tiene la solución. Denme una manita, que mientras no entregue esto no puedo solicitar las vacaciones que ya me tocan....:)

Gracias de antemano....

podrias intentar con utilizar otro puerto....

Cita:

Gmail requiere una conexión cifrada SSL (capa de sockets segura) (capa de sockets seguros (Secure Sockets Layer, SSL): estándar abierto propuesto desarrollado por Netscape Communications para establecer un canal de comunicaciones seguro para que no se produzca la intercepción de información importante como números de tarjetas de crédito.) cuando recupera y envía correo electrónico. Gmail usa el puerto número 995 para POP3 (POP3: protocolo común que se utiliza para recuperar mensajes de correo electrónico de un servidor de correo electrónico de Internet.) y el puerto 465 para SMTP (Protocolo simple de transferencia de correo (SMTP): protocolo común que se utiliza para enviar mensajes de correo electrónico a través de Internet.). Esta configuración no es la predeterminada para una cuenta POP3 en Outlook y requiere que modifique la configuración de la cuenta en Outlook.
salu2

jcarteagaf 09-05-2008 17:07:50

Muchas gracias por responder amigo Blue, estuve haciendo pruebas con el puerto 465, ya no lanza la excepción pero el programa se como congelado (en realidad me permite operarlo, pero al hacer click sobre cualquier boton lanza un access violation). Tampoco envia el mail y no llega a emitir el mensaje de Mensaje Enviado que tengo al final del proceso.

Alguna otra idea? Para probar solo puedo usar mis cuentas de gmail, hotmail o yahoo ya que no tengo un servidor de correo propio. Eso si, cuando distribuya el programa, los clientes tienen correos corporativos pero como pruebo que funciona?

Gracias de nuevo.

BlueSteel 09-05-2008 17:53:36

Cita:

Empezado por jcarteagaf (Mensaje 285593)
Muchas gracias por responder amigo Blue, estuve haciendo pruebas con el puerto 465, ya no lanza la excepción pero el programa se como congelado (en realidad me permite operarlo, pero al hacer click sobre cualquier boton lanza un access violation). Tampoco envia el mail y no llega a emitir el mensaje de Mensaje Enviado que tengo al final del proceso.

Alguna otra idea? Para probar solo puedo usar mis cuentas de gmail, hotmail o yahoo ya que no tengo un servidor de correo propio. Eso si, cuando distribuya el programa, los clientes tienen correos corporativos pero como pruebo que funciona?

Gracias de nuevo.


si quieres puedes probar con la sgte cuenta (la cree en mi servidor)

correo : jcarteagaf@cdh.cl
usuario: jcarteagaf
clave: idem_al_usuario

smtp : smtp.cdh.cl
pto : 25 (prueba con este...)

bueno, esto te permite enviar por ese correo....

Salu2

jcarteagaf 09-05-2008 18:06:02

Mil gracias nuevamente amigo Blue. Probe con esa cuenta y me da la excepcion inicial.

Seguire intentando esta tarde, ahora me voy a almorzar....:)

Nuevamente muchisimas gracias.

Saludos.

BlueSteel 09-05-2008 21:35:09

Cita:

Empezado por jcarteagaf (Mensaje 285620)
Mil gracias nuevamente amigo Blue. Probe con esa cuenta y me da la excepcion inicial.

Seguire intentando esta tarde, ahora me voy a almorzar....:)

Nuevamente muchisimas gracias.

Saludos.

pues, puede que tengas problemas con los puertos.. que estos este cerrados....

mira.. si tienes outlook.. configura la cuenta en el... y realizas una prueba.. si te funciona en el outlook... te debiera funcionar en tu sistema

cuenta : jcarteagaf
usuario : jcarteagaf

SMTP : smtp.cdh.cl o dirección_IP
POP3 : pop.cdh.cl o dirección_IP

para saber la dirección IP hace un ping a smtp.cdh.cl y anotas la dirección que te de...debe ser 200.72.209.106 (no estoy seguro)

si quieres entrar al correo lo puedes hacer desde aquí ingresando solo el usuario y contraseña..

bueno,.. por lo pronto no se me ocurre nada más....

Salu2:p:D

jcarteagaf 09-05-2008 21:43:36

Estuve probando con los datos que me diste amigo BlueSteel y me da el siguiente error:

Requested action not taken: mailbox unavailable

Alguna idea?

Gracias por anticipado.

BlueSteel 09-05-2008 21:55:11

Cita:

Empezado por jcarteagaf (Mensaje 285688)
Estuve probando con los datos que me diste amigo BlueSteel y me da el siguiente error:

Requested action not taken: mailbox unavailable

Alguna idea?

Gracias por anticipado.

Pero donde te da ese error ???

para que veas que la cuenta funciona... ingresa al webmail

Salu2:p:D

jcarteagaf 09-05-2008 22:03:35

Pues en el webmail si funciona.

Es algo que debo estar haciendo mal. Revisare nuevamente mis procesos y te aviso cualquier cosa.

Gracias.


La franja horaria es GMT +2. Ahora son las 18:43:06.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi