2017-09-30 17 views
0

Delphi RAD Studio 10.2 및 Indy 구성 요소에 문제가 있습니다. gmail 및 hotmail 주소로 메일을 보내지 만 일부 서비스 제공 업체의 이메일 주소 인 일부 주소에는 메일이 수신되지 않습니다. 나는 시도했다. 그리고 그것은 단지 어떤 주소에 그것을 보내지 않는 어떤 에러 메시지도주지 않는다.Delphi Indy 구성 요소가 Gmail을 사용하여 메일을 보내고 일부 주소로 메일을 보내지 않습니다.

아마도 IdMessage에 보낸 사람 이름이 없기 때문일 수 있습니다. 발신자 이름을 설정했지만 내 메시지에는 표시되지 않습니다. IdSMTP1.Connected 다음 IdSMTP1.Disconnect을 시작하면

내 코드는 마지막으로

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; 

이다; 끝; 끝;

+0

이것은 문제의 원인이 아니지만 메모가 누출되는 것 같습니다. – MartynA

답변

0

최선의 방법은 코드가 정상적으로 작동하지만 전자 메일 서버가 수신 메일을 거부하는 것입니다.하지만 그 전에는 전자 메일에 SSL이나 다른 보안을 추가해야하는 경우 개인 서비스 공급자를 조사하십시오. 서버가 수신 메일을 미리 받아들입니다. Gmail은 이미 매우 구체적입니다. 이메일이 Gmail로 전송되는 경우 개인 서비스 제공 업체를 살펴보십시오.

+0

도움 주셔서 감사합니다. 오래 지연되었고 모든 메시지가 수신되었습니다. – user3146414

2

TIdSMTP이 예외를 발생시키지 않으면 오류가 발생하지 않습니다. 연결되어있는 즉시 SMTP 서버는 각받는 사람에게 전자 메일을 보내기로 동의했으며 현재 SMTP 세션이 끝나면 다른 SMTP 서버로 전자 메일을 전달할 수도 있습니다. 이러한 전달 중 배달 오류는 SMTP 코드에보고 될 수 없으며 대신 보낸 사람 전자 메일의받은 편지함으로 전달됩니다. 받은 편지함에서 배달 오류를 확인해야합니다.