100分求解!解决立即送分!
1)一台电脑部署在外网,有一个公网固定IP。
2)电脑的防火墙关闭。
3)使用到IdSMTP和IdMessage控件。
4)ping网关(205.227.95.31)可以ping通,但ping IP(205.227.95.32) ping不通(网关和IP不是真实的,就是最后一个数字不一样,前三个一样)。
5)发送邮件代码如下:
procedure TForm1.button1Click(Sender: TObject);
begin
try
begin
SQLStr := 'XXXXXXX order by id asc';
ADOQuery2.Close;
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Add(SQLStr);
ADOQuery2.Open;
i := ADOQuery2.RecordCount;
if i > 0 then
begin
try
smtp.Host := Trim(Edit8.Text);
smtp.Username := Trim(Edit5.Text);
smtp.password := Trim(Edit7.Text);
smtp.Port := 25;
MgeSend.Recipients.Clear;
MgeSend.Recipients.Add.Address := ADOQuery2.FieldByName('mail').AsString;
if Trim(EDT119.Text) <> '' then
begin
MgeSend.Recipients.Add.Address := Trim(EDT119.Text);
end;
MgeSend.From.Text := Trim(Edit6.Text);
MgeSend.Subject := 'hello world!';
MgeSend.Body.Text := 'hello world';
MgeSend.CharSet := 'UTF-8';
finally
end;
try
smtp.Connect();
smtp.Authenticate;
smtp.Send(MgeSend);
finally
smtp.Disconnect;
end;
end;
end;
finally
ADOQuery2.Close;
end;
end;
连接SQL的IP用公网IP,localhost,127.0.0.1都试过不行。同样的程序放在内网点击BUtton1可以发送邮件。
放在外网的这台电脑上,点击下button1则跳出"Socket Error # 11002",邮件无法发送。请问如何解决?
-----------
1)一台电脑部署在外网,有一个公网固定IP。
2)电脑的防火墙关闭。
3)使用到IdSMTP和IdMessage控件。
4)ping网关(205.227.95.31)可以ping通,但ping IP(205.227.95.32) ping不通(网关和IP不是真实的,就是最后一个数字不一样,前三个一样)。
5)发送邮件代码如下:
procedure TForm1.button1Click(Sender: TObject);
begin
try
begin
SQLStr := 'XXXXXXX order by id asc';
ADOQuery2.Close;
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Add(SQLStr);
ADOQuery2.Open;
i := ADOQuery2.RecordCount;
if i > 0 then
begin
try
smtp.Host := Trim(Edit8.Text);
smtp.Username := Trim(Edit5.Text);
smtp.password := Trim(Edit7.Text);
smtp.Port := 25;
MgeSend.Recipients.Clear;
MgeSend.Recipients.Add.Address := ADOQuery2.FieldByName('mail').AsString;
if Trim(EDT119.Text) <> '' then
begin
MgeSend.Recipients.Add.Address := Trim(EDT119.Text);
end;
MgeSend.From.Text := Trim(Edit6.Text);
MgeSend.Subject := 'hello world!';
MgeSend.Body.Text := 'hello world';
MgeSend.CharSet := 'UTF-8';
finally
end;
try
smtp.Connect();
smtp.Authenticate;
smtp.Send(MgeSend);
finally
smtp.Disconnect;
end;
end;
end;
finally
ADOQuery2.Close;
end;
end;
连接SQL的IP用公网IP,localhost,127.0.0.1都试过不行。同样的程序放在内网点击BUtton1可以发送邮件。
放在外网的这台电脑上,点击下button1则跳出"Socket Error # 11002",邮件无法发送。请问如何解决?
-----------
IdSMTP1.AuthType := satDefault; // satSASL ?