德尔福的Indy组件使用Gmail发送邮件不会将其发送到一些地址
我有问题,德尔福的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; 结束; 结束;
最好的办法是你的代码工作正常,但该电子邮件服务器,而下降的传入邮件。但在此之前,与私营服务提供商调查,如果你需要SSL或任何其他安全添加到您的电子邮件服务器事先接受收到的邮件。如果您的电子邮件正通过Gmail访问,那么Gmail已经非常具体,而只需查看私人服务提供商即可。
谢谢你的帮助。有很长的延迟,现在所有的消息都已收到。 – user3146414
如果TIdSMTP
没有抛出一个异常,那么没有错误发生。您连接的即时SMTP服务器已同意将电子邮件发送给每个收件人,这可能涉及在当前SMTP会话结束后将电子邮件转发到其他SMTP服务器。这些转发期间的传递错误无法报告给您的SMTP代码,它们会被转发到您的发件人电子邮件的收件箱中。您需要检查收件箱是否存在传递错误。
这不是什么导致你的问题,但你似乎是泄漏的备忘录。 – MartynA