Я хочу отправить письмо через сервер GMail.Не удается отправить электронную почту (через GMail) с помощью Indy. Несоответствие версии протокола
TRY
SMTP.Connect; // <---- This is TIdSMTP
EXCEPT
Log.AddError('Cannot connect to the email server.');
END;
if SMTP.Connected then
TRY
SMTP.Send(MailMessage);
EXCEPT
on E:Exception DO
begin
Log.AddError('Connected to server but could not send email!');
Log.AddError(E.Message);
end;
END;
if SMTP.Connected
then SMTP.Disconnect;
Этот фрагмент кода работал в 2014 году с Delphi XE.
Программа подключается к серверу нормально, но в конце концов он говорит: «SSL не доступен на этом сервере»:
Resolving hostname smtp.Gmail.com.
Connecting to 74.125.xxx.xxx
Connected.
Connected to SMTP server...
SSL status: "before/connect initialization"
SSL status: "before/connect initialization"
SSL status: "SSLv3 write client hello A"
SSL status: "SSLv3 read server hello A"
SSL status: "SSLv3 read server hello A"
Disconnected.
Connected to server but could not send email!
SSL is not available on this server.
Я имею последнюю версию OpenSSL (скачано сегодня) и Delphi XE7.
WireShark говорит:
Предупреждение (Уровень: Fatal, Описание: протокол версии)
Почему я не могу отправить по электронной почте?
Я попробовал все: нет TSL, неявный, явный, startTSL ...
Версия ALL может быть активирована (не только v1 и v3), чтобы быть на безопасной стороне (убедитесь, что код работает со всеми серверами электронной почты) ... – Ampere
Спасибо WireShark. – Ampere
Нет 'sslvSSLv1'. Вместо этого вы думаете о 'sslvTLSv1'. –