У меня проблемы с отправкой сообщений в службу Amazon SES используя Indy TIdHTTP.
Вот пример кода, который я использую:
procedure TMainFrm.btnAmazonSESClick(Sender: TObject);
var
SSLHandler: TIdSSLIOHandlerSocket;
HttpClient: TIdHTTP;
Params: TStringStream;
begin
SSLHandler := TIdSSLIOHandlerSocket.Create(Self);
HttpClient := TIdHTTP.Create(Self);
Params := TStringStream.create('');
try
with SSLHandler do
SSLOptions.Method := sslvSSLv3
with HttpClient do
begin
IOHandler := SSLHandler;
AllowCookies := True;
HandleRedirects := True;
HTTPOptions := [hoForceEncodeParams];
Request.ContentType := 'application/x-www-form-urlencoded';
end;
PageMemo.Text := HttpClient.Post('https://email.us-east-1.amazonaws.com?Action=VerifyEmailAddress&AWSAccessKeyId=012Some123Key46&EmailAddress=test@test%2Ecom', Params);
finally
SSLHandler.Free;
HttpClient.Free;
Params.Free;
end;
end;
Результат
В Indy 10.5.7 я получаю сообщение об ошибке: HTTP / 1.1 404 Not Found
В Indy 9.0.14 я получаю сообщение об ошибке: Ошибка сокета # 11004
Пробные отладки
Эта же демонстрация может успешно ПОЛУЧИТЬ HTML с веб-страницы HTTPS.
Если я вставлю указанный выше URL-адрес в браузер, он отобразит ожидаемый результат в формате XML.
Буду признателен за любой совет по делу.