Ir al contenido


Foto

Como enviar un email sin la intervencion del usuario


  • Por favor identifícate para responder
18 respuestas en este tema

#1 JoAnCa

JoAnCa

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 775 mensajes
  • LocationPinar del Río, Cuba

Escrito 04 septiembre 2009 - 12:58

Hola a todos
Quisiera saber como puedo hacer para que mi aplicacion delphi enví­e un email pero sin la intervencion del usuario
Se como hacerlo pero el usuario tiene que intervenir para enviarlo
La problematica es la siguiente:
El soft lleva un control de varios indicadores, económicos, de produccion, etc., que introduce un especialista determinado
Cuando hay algun indicador con problemas (ejemplo que van a haber pocas utilidades), entonces el programa automatiocamente le envia un email al jefe economico (y tambien al Jefe principal) alertandolo de esta incidencia

Espero haberme explicado bien
  • 0

#2 Fenareth

Fenareth

    Advanced Member

  • Administrador
  • 3.486 mensajes
  • LocationMexico City

Escrito 04 septiembre 2009 - 01:06

Porqué dices que el usuario tiene que intervenir ??? qué tiene que hacer ???  *-)

Saludos !  :D
  • 0

#3 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 04 septiembre 2009 - 01:18

Hola, deberí­as indicarnos cómo serí­an los indicadores, en basé a qué se calculan y de donde vienen, para ser un poco más preciso y con más detalles.

Saludos.
  • 0

#4 Fenareth

Fenareth

    Advanced Member

  • Administrador
  • 3.486 mensajes
  • LocationMexico City

Escrito 04 septiembre 2009 - 01:24

Hola, deberí­as indicarnos cómo serí­an los indicadores, en basé a qué se calculan y de donde vienen, para ser un poco más preciso y con más detalles.

Saludos.


Es eso relevante para poder mandar el correo que avisa de los problemas de los indicadores ???  ^o|  *-)

Saludox !  :D
  • 0

#5 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 04 septiembre 2009 - 01:25

Hola

Yo no le veo el problema de indicarnos el "indicador", lo que debe de hacer es generar un query con una consulta que le regrese el indicador que desee popr ejemplo:



sql
  1. SELECT campos FROM tabla
  2. WHERE utilidades < :Variable



Entonces, cuando exista el registro que se automatice el envio de correo.

Creo que lo que quiere es precisamente como hacer esa automatizacion.

Salud OS
  • 0

#6 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 04 septiembre 2009 - 01:28

Cuando hay algun indicador con problemas (ejemplo que van a haber pocas utilidades), entonces el programa automatiocamente le envia un email al jefe economico (y tambien al Jefe principal) alertandolo de esta incidencia


Creo que el asunto es más complejo que eso ;).
  • 0

#7 Fenareth

Fenareth

    Advanced Member

  • Administrador
  • 3.486 mensajes
  • LocationMexico City

Escrito 04 septiembre 2009 - 01:41

Pues espero que JoAnCa nos aclare un poco, porque considero que lo que a él le importa es el enviar un mail automáticamente a una persona o personas predefinidas basado en ciertas condiciones...

Yo lo visualizo como egostar...  *-)

Saludox !  :D
  • 0

#8 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 04 septiembre 2009 - 01:50

Pues espero que JoAnCa nos aclare un poco, porque considero que lo que a él le importa es el enviar un mail automáticamente a una persona o personas predefinidas basado en ciertas condiciones...

Yo lo visualizo como egostar...  *-)

Saludox !  :D


Pues según yo entiendo la pregunta de JoAnca, es lo siguiente: que el sistema calcule los indicadores económicos y terminado de analizarse enviar ese email siempre y cuando uno de esos indicacores tenga la posibilidad de obtener poca utilidad o algún problema de cualquier í­ndole, o sea, estamos hablando de una proyección, ya que esos tipos de datos son siempre fluctuantes, o sea, no hay nada fijo o  con un tope, por eso considero que es algo más complejo que eso, lo digo como Lic. en Administración, ahora, como programador, digo, es cierto que es muy fácil enviar un mail sin intervención del usuario, de la misma forma que él sabe hacerlo sólo que los datos deben estar llenadas de antemano, con un query y timer cada x tiempo pues se envia sin problemas, bueno, no me lí­o más :p

Saludos.
  • 0

#9 Chris

Chris

    Member

  • Miembros
  • PipPip
  • 36 mensajes
  • LocationJinotepe

Escrito 04 septiembre 2009 - 02:04

Pues creo que tendrás que usar los componentes INDY. No pudiera yo proporcionarte mucha ayuda, no son mi fuerte, pero acá en el foro hay muchos que sí­ saben al respecto.

Saludos.
  • 0

#10 JoAnCa

JoAnCa

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 775 mensajes
  • LocationPinar del Río, Cuba

Escrito 05 septiembre 2009 - 11:47

Porqué dices que el usuario tiene que intervenir ??? qué tiene que hacer ???  *-)

Saludos !  :D


En este caso me refiero a que como siempre lo he hecho es, por ejemplo:



delphi
  1.   ShellExecute(GetDesktopWindow(), nil, pChar('mailto:'+TLabel(Sender).Caption+
  2.                                               '?Subject=Asistencia Técnica'+
  3.                                               '&Body=Describa el problema presentado...'),
  4.               nil, nil, SW_SHOWNORMAL);



pero esto lo que hace es abrir el cliente de correo con el mensaje preelaborado y el usuario tiene que hacer clic en enviar

Lo que yo quiero es que dado una condición, el programa automaticamente envie un email elaborado a una o varias direcciones de correo que ya se establecieron de antemano, sin necesidad de que el usuario tenga que hacer clic en ningun lugar, es decir, sin que salga nada en la pantalla

Sobre los indicadores que se tratan no es relevante para lo que quiero, pues se determinar cuando se da la condición, por ejemplo:
El costo debe estar por debajo de 1 para poder tener ganancias, si es mayor habra perdidas
Ademas de que las condiciones referentes a la fluctuacion de los indicadores ya estan establecidas por los especialistas correspondientes

El problema solo esta en: Se cumple la condicion X, entonces envio un email

Pero no se hacerlo automaticamente, y nunca he trabajado con las INDY

  • 0

#11 eduarcol

eduarcol

    Advanced Member

  • Administrador
  • 4.483 mensajes
  • LocationVenezuela

Escrito 05 septiembre 2009 - 04:23

Si tienes correo POP, esta posibilidad te servira:



delphi
  1. var
  2.   mail : TIDMessage;
  3.   smtp : TIdSMTP;
  4.   cArchivo: String;
  5. begin
  6.   smtp := TIdSMTP.Create(self);
  7.   smtp.Name := 'Smtp';
  8.   // CONFIGURACION DEL SERVIDOR AL QUE SE ENVIA EL CORREO
  9.   with smtp do begin
  10.     AuthenticationType := atLogin;
  11.     Host := <<host del correo>>;
  12.     port := <<puerto correo>>;
  13.     Username := <<Nombre Usuario>>;
  14.     Password := <<Clave Usuario>>;
  15.   end;
  16.  
  17.   mail := TIdMessage.Create(Self);
  18.   // CONFIGURACION DEL MENSAJE A ENVIAR
  19.   with mail do begin
  20.     From.Address := <<Direccion de Envio>>;
  21.     Recipients.EMailAddresses := <<Correo a enviar>>;
  22.     Subject := <<Asunto del correo>>;
  23.     body.text := <<Cuerpo del correo>>;
  24.   end;
  25.  
  26.   //Archivo adjunto
  27.   if FileExists(cArchivo) then
  28.     TIdAttachment.create(mail.MessageParts, cArchivo);
  29.  
  30.   try
  31.     // CONEXION CON EL SERVIDOR DE CORREO
  32.     smtp.Connect(10000);
  33.     try
  34.       // ENVIO DEL MENSAJE
  35.       smtp.Send(mail);
  36.       ShowMessage('Se envio el correo');
  37.     except
  38.       on E: Exception do
  39.         ShowMessage('Fallo al enviar: ' + E.Message);
  40.     end;
  41.   finally
  42.     if SMTP.Connected then SMTP.Disconnect;
  43.     smtp.free;
  44.     mail.free;
  45.   end;
  46.  
  47. end;



Las lineas que estan entre <<>>  son las que debes adaptar a tus necesidades, cualquier cosa avisa.
  • 0

#12 JoAnCa

JoAnCa

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 775 mensajes
  • LocationPinar del Río, Cuba

Escrito 07 septiembre 2009 - 11:21

Gracias eduarcol, lo probare y despues te cuento ;)
  • 0

#13 JoAnCa

JoAnCa

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 775 mensajes
  • LocationPinar del Río, Cuba

Escrito 07 septiembre 2009 - 11:46

Si tienes correo POP, esta posibilidad te servira:


Que unit tengo que poner en el uses

Me da error con los tipos TIDMessage y TIdSMTP  *-)
  • 0

#14 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 07 septiembre 2009 - 11:55

Esos son clases de los componentes Indy.

Saludos
  • 0

#15 Caral

Caral

    Advanced Member

  • Moderador
  • PipPipPip
  • 4.266 mensajes
  • LocationCosta Rica

Escrito 07 septiembre 2009 - 12:20

Hola
Hace tiempo modifique uno de los ejemplos de Delphi para que me enviara un email automaticamente.
Lo que hace es verificar si la ip del servidor ha cambiado y si es asi envia un email.
Es facil adaptarlo a lo que se necesita.
Saludos

Archivos adjuntos


  • 0

#16 JoAnCa

JoAnCa

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 775 mensajes
  • LocationPinar del Río, Cuba

Escrito 07 septiembre 2009 - 12:55

Esos son clases de los componentes Indy.

Saludos


Disculpa mi ignorancia, pero es que nunca he trabajado con los Indy, cual componente Indy es el que tengo que usar??
O que unit poner en el uses


Hola
Hace tiempo modifique uno de los ejemplos de Delphi para que me enviara un email automaticamente.
Lo que hace es verificar si la ip del servidor ha cambiado y si es asi envia un email.
Es facil adaptarlo a lo que se necesita.
Saludos


gracias caral, ya descargue tu ejemplo, lo probare y adaptare y despues te digo

  • 0

#17 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 07 septiembre 2009 - 01:00

Disculpa mi ignorancia, pero es que nunca he trabajado con los Indy, cual componente Indy es el que tengo que usar??
O que unit poner en el uses


En la paleta Indy Clients -> idSMTP

Saludos.
  • 0

#18 eduarcol

eduarcol

    Advanced Member

  • Administrador
  • 4.483 mensajes
  • LocationVenezuela

Escrito 08 septiembre 2009 - 02:36

perdon por la demora, solo coloca en el uses

IDMessage y IdSMTP 
  • 0

#19 JoAnCa

JoAnCa

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 775 mensajes
  • LocationPinar del Río, Cuba

Escrito 08 septiembre 2009 - 03:37

Muchas gracias a todos por sus respuestas

eduarcol me sirvio tu ejemplo de lo mas bien

  • 0




IP.Board spam blocked by CleanTalk.