Como enviar un email sin la intervencion del usuario
#1
Escrito 04 septiembre 2009 - 12:58
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
#2
Escrito 04 septiembre 2009 - 01:06
Saludos !
#3
Escrito 04 septiembre 2009 - 01:18
Saludos.
#4
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 ???
Saludox !
#5
Escrito 04 septiembre 2009 - 01:25
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:
SELECT campos FROM tabla 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
#6
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 .
#7
Escrito 04 septiembre 2009 - 01:41
Yo lo visualizo como egostar...
Saludox !
#8
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 !
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
Saludos.
#9
Escrito 04 septiembre 2009 - 02:04
Saludos.
#10
Escrito 05 septiembre 2009 - 11:47
Porqué dices que el usuario tiene que intervenir ??? qué tiene que hacer ???
Saludos !
En este caso me refiero a que como siempre lo he hecho es, por ejemplo:
ShellExecute(GetDesktopWindow(), nil, pChar('mailto:'+TLabel(Sender).Caption+ '?Subject=Asistencia Técnica'+ '&Body=Describa el problema presentado...'), 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
#11
Escrito 05 septiembre 2009 - 04:23
var mail : TIDMessage; smtp : TIdSMTP; cArchivo: String; begin smtp := TIdSMTP.Create(self); smtp.Name := 'Smtp'; // CONFIGURACION DEL SERVIDOR AL QUE SE ENVIA EL CORREO with smtp do begin AuthenticationType := atLogin; Host := <<host del correo>>; port := <<puerto correo>>; Username := <<Nombre Usuario>>; Password := <<Clave Usuario>>; end; mail := TIdMessage.Create(Self); // CONFIGURACION DEL MENSAJE A ENVIAR with mail do begin From.Address := <<Direccion de Envio>>; Recipients.EMailAddresses := <<Correo a enviar>>; Subject := <<Asunto del correo>>; body.text := <<Cuerpo del correo>>; end; //Archivo adjunto if FileExists(cArchivo) then TIdAttachment.create(mail.MessageParts, cArchivo); try // CONEXION CON EL SERVIDOR DE CORREO smtp.Connect(10000); try // ENVIO DEL MENSAJE smtp.Send(mail); ShowMessage('Se envio el correo'); except on E: Exception do ShowMessage('Fallo al enviar: ' + E.Message); end; finally if SMTP.Connected then SMTP.Disconnect; smtp.free; mail.free; end; end;
Las lineas que estan entre <<>> son las que debes adaptar a tus necesidades, cualquier cosa avisa.
#12
Escrito 07 septiembre 2009 - 11:21
#13
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
#14
Escrito 07 septiembre 2009 - 11:55
Saludos
#15
Escrito 07 septiembre 2009 - 12:20
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
#16
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
#17
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.
#18
Escrito 08 septiembre 2009 - 02:36
IDMessage y IdSMTP
#19
Escrito 08 septiembre 2009 - 03:37
eduarcol me sirvio tu ejemplo de lo mas bien