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",郵件無法發送。請問如何解決?
-----------
uj5u.com熱心網友回復:
IdSMTP1.Authenticate := True;IdSMTP1.AuthType := satDefault; // satSASL ?
uj5u.com熱心網友回復:
試了不行,還是報錯。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/53673.html
標籤:VCL組件開發及應用
