2017-09-30 52 views
0

我有問題,德爾福的RAD Studio 10.2和印組件。 它發送郵件到Gmail和Hotmail地址,但某些地址是私人服務提供者的電子郵件地址不接收任何郵件。我試過了,它沒有給出任何錯誤消息,它只是不會將它發送到某些地址。德爾福的Indy組件使用Gmail發送郵件不會將其發送到一些地址

也許是因爲我沒有在我的IdMessage發件人的名字嗎?我設置了發件人名稱,但沒有在我的郵件中顯示。

我的代碼是

IdMessage1.From.Name := EditNimi.Text; 
    IdMessage1.From.Text := EditNimi.Text; 
IdMessage1.From.Address := EditOsoite.Text; 

    IdMessage1.Recipients.EmailAddresses := strArray[i]; 
    temp := strArray[i]; 
    IdMessage1.Subject := EditOtsikko.Text; 
    Memo := TStringList.Create; 
    Memo.Assign(MemoViesti.Lines); 
    for o := 0 to Memo.Count-1 do 
    begin 
    IdMessage1.Body.Add(Memo.Strings[o]) 
    end; 

try 
try 
    IdSMTP1.Connect; 
    IdSMTP1.Send(IdMessage1); 
    IdMessage1.Clear; 
    Sleep(1000); 
    //IdMessage1.Free; 
except on E:Exception do begin 
    ShowMessage('Virhe lähetettäessä'); 
    ShowMessage('There was an error: ' + E.Message); 
    //StatusMemo.Lines.Insert(0, 'ERROR: ' + E.Message) ; 
end; 
end; 

終於 如果IdSMTP1.Connected然後開始 IdSMTP1.Disconnect; 結束; 結束;

+0

這不是什麼導致你的問題,但你似乎是泄漏的備忘錄。 – MartynA

回答

0

最好的辦法是你的代碼工作正常,但該電子郵件服務器,而下降的傳入郵件。但在此之前,與私營服務提供商調查,如果你需要SSL或任何其他安全添加到您的電子郵件服務器事先接受收到的郵件。如果您的電子郵件正通過Gmail訪問,那麼Gmail已經非常具體,而只需查看私人服務提供商即可。

+0

謝謝你的幫助。有很長的延遲,現在所有的消息都已收到。 – user3146414

2

如果TIdSMTP沒有拋出一個異常,那麼沒有錯誤發生。您連接的即時SMTP服務器已同意將電子郵件發送給每個收件人,這可能涉及在當前SMTP會話結束後將電子郵件轉發到其他SMTP服務器。這些轉發期間的傳遞錯誤無法報告給您的SMTP代碼,它們會被轉發到您的發件人電子郵件的收件箱中。您需要檢查收件箱是否存在傳遞錯誤。