我遇到Delphi RAD Studio 10.2和Indy组件的问题。 它将邮件发送到gmail和hotmail地址,但是某些地址是私人服务提供商的电子邮件地址,并没有收到任何邮件。我试过,它没有给出任何错误信息,它只是没有发送到某些地址。
也许是因为我的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 :(得分:2)
如果TIdSMTP
未引发异常,则不会发生错误。您连接的直接SMTP服务器已同意将电子邮件发送给每个收件人,这可能涉及在当前SMTP会话结束后将电子邮件转发到其他SMTP服务器。这些转发期间的投放错误无法报告给您的SMTP代码,而是会将其发送到您的发件人电子邮件的收件箱中。您需要检查收件箱是否存在送货错误。
答案 1 :(得分:0)
最好的办法是,您的代码工作正常,但电子邮件服务器正在拒绝接收邮件。但在此之前,如果您需要在电子邮件中添加SSL或任何其他安全性,请调查私人服务提供商服务器事先接受传入的邮件。 Gmail已经非常具体,如果您的电子邮件是通过Gmail发送,而是查看私人服务提供商。