Ver Mensaje Individual
  #8  
Antiguo 14-11-2006
ErnestoCarrera ErnestoCarrera is offline
Miembro
 
Registrado: abr 2006
Posts: 11
Reputación: 0
ErnestoCarrera Va por buen camino
Bueno pues ya he conseguido la respuesta.

Buenas al final he conseguido la respuesta y ya consigo que la aplicación envíe mails de una manera autosuficiente. El problema del post anterior venía resuelto en las demos del DNSResolver así que fue fácil. Os dejo la función que estoy usando para envíar los mail. En ella se supone que la aplicación tiene un componente de tipo TidDNSResolver, aunque ahora que lo pienso podría haberlo declarado dinámicamente.

Código Delphi [-]
function TFMC_SMS.sendMail(Destino : String; Msg: TIdMessage; FhostDNS :String) : boolean;
Var  
  i          : Integer;  
  DnsResource: TIdDNSResourceItem; 
Begin   
  if FHostDNS = '' then exit;
  IdDNSResolver.Host := FHostDNS;
  IdDNSResolver.ReceiveTimeout := 30000;
  IdDNSResolver.ClearVars;
  with IdDNSResolver.DNSHeader do
     Begin      
      Qr := False; //<-- Indica que es una Query; True es Response
      Opcode := 0; //<-- 0 is Query; 1 is Iquery Iquery is send IP return        
      RD := True;
      QDCount := 1;
    End;

  IdDNSResolver.DNSQDList.Clear;

 with IdDNSResolver.DNSQDList.add do 
    Begin 
      QName := Destino;
      QType := 15; //<-- El tipo de consulta es MX (Mail Exchange)
      QClass := cIN;
    End;

  IdDNSResolver.ResolveDNS;

 With IdDNSResolver do 
   Begin 
     for i:=0 to DnsAnList.Count -1 do 
        Begin 
          DnsResource := DnsAnList[i]; 
          try 
             TIdSMTP.QuickSend(DnsResource.RData.MX.Exchange,
                                         Msg.Subject,
                                         Msg.Recipients.EMailAddresses,
                                         Msg.From.Text,
                                         Msg.Body.Text);
          except 
            continue;
          End;
          Result := True;
          exit;
        End;
    End;
  Result := False;
End;

Así pues, puedes mandar un mail sin tener configurado ningún cliente de correo ni ningún SMTP en el equipo.

Última edición por ErnestoCarrera fecha: 14-11-2006 a las 09:46:01.
Responder Con Cita