2016-05-27 16 views
2

GMailサーバー経由でメールを送信します。インディで電子メール(GMail経由)を送信できません。プロトコルのバージョンが一致しません

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で動作しました。

プログラムは、サーバーにOKを接続しますが、最終的にそれは「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のは言う:

を警告(レベル:致命的な、説明:プロトコル・バージョン)

私は電子メールを送信することができないのはなぜ?
私はすべてを試してみました:いいえTSL、暗黙的、明示的、startTSL ...

enter image description here

答えて

4

SOLUTION: sslvTLSv1はSSLIOHandler.SSLVersionsプロパティに含まれている必要があります。

+0

すべてのバージョンは、(コードがすべての電子メールサーバーで動作することを確認してください)安全な側になるように(v1およびv3だけでなく)アクティブ化することができます。 – Ampere

+0

Thanks WireShark。 – Ampere

+2

'sslvSSLv1'はありません。代わりに 'sslvTLSv1'を考えています。 –

関連する問題