INDY控件中是如何进行群发的?如果用抄送的形式是如何发送?为什么我这样写会出错?(16分)

  • 主题发起人 主题发起人 dana
  • 开始时间 开始时间
D

dana

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure GetMxList(AMxList: TStringList; AQName: string);
var i: Integer;
begin
with form,IdDNSResolver do
begin
Host := '211.97.146.7';
ReceiveTimeout := 10000; // 在指定的时间内得不到域名服务器的反馈,则视为失败。
ClearVars; // 清除前一次查询所反馈回来的资源记录
with DNSHeader do
begin
Qr := False; // False 代表查询
Opcode := 0; // 0代表标准域名查询
RD := True; //域名服务器可以进行递归查询
QDCount := 1; //查询的数量
end;
DNSQDList.Clear;
with DNSQDList.Add do
begin
QName := AQName; //要查询的域名
QType := cMX; //QTYPE指定要查询的资源记录的种类,值为cMX代表邮件交换记录
QClass := cIN;
end;
ResolveDNS; //向域名服务器发出请求
for i := 0 to DNSAnList.Count - 1 do
AMxList.Add(DNSAnList.RData.MX.Exchange + '=' +
IntToStr(DNSAnList.RData.MX.Preference));
end;
end;

procedure tk_send;
var MxList: TStringList; i: Integer; QName, ThoughAddress: string;
begin
with form do
begin
with IdMsgSend do
begin
body.Text:=memo1.text;
From.Address := Trim(sen_add.Text); //发件人地址
// Recipients.EMailAddresses :=sen_to.text; //收件人地址
Subject := sen_tit.Text;//邮件主题
CCList.EMailAddresses :=sen_to.text; {CC} //抄送 //为什么这样无法抄送?
BccList.EMailAddresses := sen_to.text; {BBC} //密送
end;
QName := TrimRight(copy(lxy_addr_fir, Pos('@', lxy_addr_fir) + 1, Length(lxy_addr_fir)));
MxList := TStringList.Create;
try
GetMxList(MxList, QName);
ThoughAddress := MxList.Names[0];
finally
MxList.Free;
end;
//
with IdSMTP do
begin
Host := ThoughAddress; // 将Host赋值为目的地,这就是特快专递与普通邮件的区别
Port := 25; // smtp服务默认的端口为25
Connect; //连接到服务器
try
Send(IdMsgSend); //发送刚才创建的邮件
//ShowMessage('发送完毕'); //发送完毕后提示
finally
Disconnect; //断开服务器连接
end;
end;
end;
end;

 
快来看看!
 
我要结帐了
 
多人接受答案了。
 
后退
顶部