Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #5  
Antiguo 06-11-2012
Lenny Lenny is offline
Miembro
 
Registrado: jun 2007
Posts: 161
Poder: 17
Lenny Va por buen camino
Arrow Ejemplo

Estimado, no sé si es exactamente lo que necesitas, en mi caso me toco hacer algo similar para otros propósitos y pase varios días rebuscando el cómo ajustar los códigos y ayudas (invaluables por lo demás) que amablemente (a pesar de lo pregunton y bruto para entender que soy) los integrantes de CLUBDELPHI me fueron dando, mas menos te explico y dejo mi código modificado mas menos a tu idea para orientarte al respecto:
SI necesitas que se envié automático al generar X acción (generar orden, guardar info, hora especifica, etc) la mejor opción (de todas las que probé la que mejor funciona para este caso) es usar de las indy el "IdMessage" e "IdSMTP".
El IdSMTP lo rellenas con los datos de la cuenta que enviara el mail (Host, Password, port, username) ahora a definir cuales serian los pasos previos antes de enviar el mail.
Supongo que al generar la orden debes tener los datos del paciente, el día, la fecha y el doc que lo va a atender, dependiendo de cómo trabajes esta info puedes guardarla en una variable u obtenerlas directamente de la base de datos (en este caso ni idea cual usas, yo utilizo mysql).
Ahora el código según todo esto debería quedar algo así:

Código Delphi [-]
procedure TEnvioConsultas.Button1Click(Sender: TObject);
var
Lista: String;
begin

....
....
....

BDatos.RegConsulta_T.Edit;
BDatos.RegConsulta_T.FieldbyName ('EstadoConsulta').AsString:= 'Enviado';
BDatos.RegConsulta_T.FieldbyName ('FechaGeneracion').AsDateTime:= now;
BDatos.RegConsulta_T.Post;

IdMessage1.ContentType := 'text/plain';
IdMessage1.CharSet := 'UTF-8';
IdMessage1.Recipients.EMailAddresses := Lista;
IdMessage1.From.Address:= 'sistemaconsulta@matasanos.org';
IdMessage1.Subject:='Clinica Matasanos - Consulta';
IdMessage1.Body.Text:=
'Para su información :' + #13#10 + #13#10 +
                   'El usuario/a '+ BDatos.RegConsulta_T.FieldbyName('Usuario').asString +
                   ' ha ingresado su consulta ' + BDatos.RegConsulta_T.FieldbyName('Consulta').asString +
                   ', Orden N° '+ BDatos.RegConsulta_T.FieldbyName('Orden').asString + ' Con fecha '+ BDatos.RegConsulta_T.FieldbyName('FechaIngreso').asString +'''' +  #13#10 +
                   'Area/Especialista:'+ BDatos.RegConsulta_T.FieldbyName('AreaEspecialista').asString + '''' + #13#10 +
                   'Doctor: : '+ BDatos.RegConsulta_T.FieldbyName('Doctor').asString +'''' + #13#10 +
                   'Descripción de la consulta: '+ BDatos.RegConsulta_T.FieldbyName('DesCOnsulta').asString +''''+ #13#10 +
                   'Por favor comunicarse a la brevedad para confirmar la hora y asistencia.' + #13#10 +
                   '' + #13#10 +
                   'Atte.' + #13#10 +
                   'Clinica Matasanos, si lo matamos Dios asi lo quiso, si queda vivo es por que somos los mejores.';
IdSMTP1.Connect;
IdSMTP1.Send(IdMessage1);
IdSMTP1.Disconnect;
Close;
  MessageBox(Handle,
             PChar('La consulta fue ingresada con exito.' + #13#10 +
                   'Consulta N° ' + DBEdit1.Text +'.'),
             PChar('Clinica Matasanos'),
             MB_OK + MB_ICONINFORMATION + MB_DEFBUTTON1 + MB_APPLMODAL);
end;


Es una forma sencilla de enviar mails predefinidos y automaticos, hasta el momento nunca he tenido problemas con este codigo y cada vez que necesito hacer un autoenvio despeus de ciertas condiciones utilizo algo como esto.

El RegConsulta_T es un Table, cambio de nombre para pdoer identificarlos mas facil, en la linea "IdMessage1.Recipients.EMailAddresses := Lista;" la palabra lista la tengo como variable por si necesitas enviar este mail a mas de una persona u/o registro, puedes tratar eso como mejor estimes.

Espero no haber lateado mucho y estar mas menos cercano a lo que necesitas, me han ayudado demasiado y he aprendido mucho en Club Delphi como para no intentar al menos devolver la mano con personas que se topan con los mismos problemas que uno ya ha solucionado, ojala te sirva todo esto, estare pendiente a tus comentarios.
Saludos!!!

PD: alguien me puede decir por que demonios me quedo "corrida" la respuesta (mas grande que los otras respuestas)???

Última edición por Lenny fecha: 06-11-2012 a las 16:50:31. Razón: Complemento al codigo
Responder Con Cita
 



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
Como enviar un email automaticamente con PHP JoAnCa PHP 3 09-03-2010 22:06:34
Envio de email con ProgressBar MaMu Internet 3 28-04-2008 05:35:27
Envio de Email al cambiar la IP Caral Varios 6 11-03-2008 02:28:53
Envio de email luisneria Internet 2 27-04-2007 12:17:30
envio de email. condor Varios 2 27-05-2004 15:28:22


La franja horaria es GMT +2. Ahora son las 12:08:44.


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
Copyright 1996-2007 Club Delphi