Tengo una rutina de autoregistro para mis aplicaciones que consiste en un formularo que me envía los datos del Usuario de mis aplicaciones, para ello uso los componentes Indy TIdSMTP y tIdMessage dento del siguiente código:
Código:
if InetIsOffline(0) then
Begin
Application.MessageBox('Debe conectarse a internet antes de enviar el Registro en Línea','Atención',MB_Ok);
Exit;
End;
Screen.Cursor := crHourGlass;
SMTP.Host := MiHost;
SMTP.Port := 25;
SMTP.Username := MiUserName;
Try
If not(SMTP.Connected) then
SMTP.Connect;
Mensage.Body.Add('Envío de autoregistro de datos del Sistema');
Mensage.Body.Add('');
Mensage.Body.Add('Empresa : '+empre.text);
Mensage.Body.Add('Contacto : '+Contac.text);
Mensage.Body.Add('Serial : '+Serial.text);
Mensage.Body.Add('Verificación : '+Verif.text);
Mensage.Body.Add('País : '+Pais.text);
Mensage.Body.Add('Ciudad : '+ciudad.text);
Mensage.Body.Add('Dirección : '+Dir.text);
Mensage.Body.Add('Teléfonos : '+Telf.text);
Mensage.Body.Add('e-Mail : '+email.text);
Mensage.Body.Add('Fecha y hora : '+DateTimeToStr(now));
Mensage.Body.Add('Versión del SisArm : '+LaVersion);
Mensage.From.Address := email.Text;
Mensage.From.Name := 'Sistema';
Mensage.Subject := 'Registro en Linea: '+empre.Text;
Mensage.ContentType := 'text/plain';
Mensage.Recipients.EMailAddresses := miEmail;
SMTP.Send(Mensage);
SMTP.Disconnect;
Application.MessageBox('El Registro se Completo con exito','Atención',MB_Ok);
ModalResult := mrOk;
Except
Application.MessageBox('El Registro no pudo ser completado, es posible que no este conectado a Internet','Atención',MB_Ok);
End;
En algunas ocasiones falla el InetIsOnLine (tomado de los trucos de internet del foro) y en otras sin razón aparente se genera el mensaje de error por excepción pero llega el mail. Creo que tiene que ver con la validez del EMail del Usuario
Código:
Mensage.From.Address := email.Text;
Alguien sabe si la función:
Código:
function InetIsOffline(Flag: Integer): Boolean; stdcall; external 'URL.DLL';
Trabaja en todos los casos (Modem-LAN)
y como puedo valizar el email del usuario.
Gracias