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; Opcode := 0; RD := True;
QDCount := 1;
End;
IdDNSResolver.DNSQDList.Clear;
with IdDNSResolver.DNSQDList.add do
Begin
QName := Destino;
QType := 15; 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.