Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 08-05-2008
Avatar de jcarteagaf
[jcarteagaf] jcarteagaf is offline
Miembro Premium
 
Registrado: abr 2006
Ubicación: La Paz, Bolivia
Posts: 651
Poder: 21
jcarteagaf Va por buen camino
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 := '[email protected]';
    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.
Responder Con Cita
  #2  
Antiguo 09-05-2008
Avatar de BlueSteel
[BlueSteel] BlueSteel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Concepción - Chile
Posts: 2.310
Poder: 26
BlueSteel Va por buen camino
Cool

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 := '[email protected]';
          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;
__________________
BlueSteel
Responder Con Cita
  #3  
Antiguo 09-05-2008
Avatar de jcarteagaf
[jcarteagaf] jcarteagaf is offline
Miembro Premium
 
Registrado: abr 2006
Ubicación: La Paz, Bolivia
Posts: 651
Poder: 21
jcarteagaf Va por buen camino
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....
Responder Con Cita
  #4  
Antiguo 09-05-2008
Avatar de BlueSteel
[BlueSteel] BlueSteel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Concepción - Chile
Posts: 2.310
Poder: 26
BlueSteel Va por buen camino
Cool

Cita:
Empezado por jcarteagaf Ver Mensaje
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
__________________
BlueSteel
Responder Con Cita
  #5  
Antiguo 09-05-2008
Avatar de jcarteagaf
[jcarteagaf] jcarteagaf is offline
Miembro Premium
 
Registrado: abr 2006
Ubicación: La Paz, Bolivia
Posts: 651
Poder: 21
jcarteagaf Va por buen camino
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.
Responder Con Cita
  #6  
Antiguo 09-05-2008
Avatar de BlueSteel
[BlueSteel] BlueSteel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Concepción - Chile
Posts: 2.310
Poder: 26
BlueSteel Va por buen camino
Cool

Cita:
Empezado por jcarteagaf Ver Mensaje
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 : [email protected]
usuario: jcarteagaf
clave: idem_al_usuario

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

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

Salu2
__________________
BlueSteel
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
enviar mail mjjj Varios 4 29-04-2008 03:50:17
enviar archivo por e-mail karocs Internet 2 16-06-2006 03:17:01
Enviar e-mail D-MO PHP 5 10-01-2006 19:21:08
enviar mail amadis API de Windows 2 06-05-2005 04:02:02
Enviar e-mail en HTML alapaco Internet 0 23-06-2003 17:39:32


La franja horaria es GMT +2. Ahora son las 14:28:39.


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