AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi SMTP Server weiterleitung
Thema durchsuchen
Ansicht
Themen-Optionen

SMTP Server weiterleitung

Ein Thema von nitschchedu · begonnen am 23. Aug 2007 · letzter Beitrag vom 23. Aug 2007
Antwort Antwort
Seite 2 von 2     12   
nitschchedu

Registriert seit: 24. Mär 2006
300 Beiträge
 
Delphi 7 Professional
 
#11

Re: SMTP Server weiterleitung

  Alt 23. Aug 2007, 21:54
Ähh das kann die Komponente selber ? Wie ?

Ansonsten würde ich es so versuchen wie es in der IdSMTPRelay.pas gemacht würd :
Delphi-Quellcode:
procedure TIdSMTPRelay.ResolveMXServers(AAddress: String);
var
  IdDNSResolver1: TIdDNSResolver;
  DnsResource: TResultRecord;
  LMx: TMxRecord;
  LDomain: String;
  i: Integer;
  iPref: Word;
begin
  { Get the list of MX Servers for a given domain into FMXServerList }
  if Pos('@', AAddress) > 0 then
  begin
     LDomain := Copy(AAddress, IndyPos('@', AAddress) + 1, Length(AAddress) - Pos('@', AAddress))
  end
  else
  begin
    raise EIdDirectSMTPCannotResolveMX.Create(Sys.Format(RSDirSMTPInvalidEMailAddress, [AAddress]));
  end;
  IdDNSResolver1:=TIdDNSResolver.Create(Self);
  FMXServerList.Clear;
  try
    try
      IdDNSResolver1.AllowRecursiveQueries:=True;
      if Assigned(IOHandler) and (IOHandler.ReadTimeOut <> 0) then
      begin
        // thirty seconds - maximum amount of time allowed for DNS query
        IdDNSResolver1.WaitingTime := IOHandler.ReadTimeout;
        // 30000;
      end
      else
      begin
        IdDNSResolver1.WaitingTime := 30000;
      end;
      IdDNSResolver1.QueryType := [qtMX];
      IdDNSResolver1.Host := DNSServer;
      IdDNSResolver1.Resolve(LDomain);
      if IdDNSResolver1.QueryResult.Count > 0 then
      begin
        iPref := High(Word);
        for i := 0 to IdDNSResolver1.QueryResult.Count - 1 do
        begin
          DnsResource := IdDNSResolver1.QueryResult[i];
          if (DnsResource is TMXRecord) then
          begin
            LMx := TMXRecord(DnsResource);
            // lower preference values at top of the list
            // could use AddObject and CustomSort, or TIdBubbleSortStringList
            // currently inserts lower values at top
            if LMx.Preference < iPref then
            begin
              iPref := LMx.Preference;
              FMXServerList.Insert(0, LMx.ExchangeServer);
            end
            else
            begin
              FMXServerList.Add(LMx.ExchangeServer);
            end;
          end;
        end;
      end;
      if FMXServerList.Count = 0 then
      begin
        raise EIdDirectSMTPCannotResolveMX.Create(Sys.Format(RSDirSMTPNoMXRecordsForDomain, [LDomain]));
      end;
    finally
      IdDNSResolver1.Free;
    end;
  except
    raise;
  end;
end;
Programmieren ..... .
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:08 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz