title: Send email using indy component delphi xe2 SSL negotiation faild
body: <p>I tried with Indy component to send email in XE2, and it works fine on my laptop that I compiled my project on.</p>
  
  <p>But if I take my exe project to another PC, it shows an error message </p>
  
  <blockquote>
    <p>Connection closed gracefully</p>
  </blockquote>
  
  <p>or, sometimes I get </p>
  
  <blockquote>
    <p>SSL Negotiation failed</p>
  </blockquote>
  
  <p>Actually I tried many times to solve my problem, but I can't.</p>
  
  <p>This is my code - where is my mistake? I need a practical solution.</p>
  
  <pre><code>procedure Gmail(username, password, totarget, subject, body :string);
  var
     DATA : TIdMessage;
     SMTP : TIdSMTP;
     SSL : TIdSSLIOHandlerSocketOpenSSL;
     result:Boolean;
  begin
     try
        SMTP := TIdSMTP.Create(nil);
        DATA := TIdMessage.Create(nil);
        SSL := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
  
        SSL.Destination := 'smtp.gmail.com:587';
        SSL.Host := 'smtp.gmail.com';
        //  SSL.MaxLineAction.maException;
        SSL.Port:= 587;
        SSL.SSLOptions.Method := sslvTLSv1;
        SSL.SSLOptions.Mode := sslmUnassigned;
        SSL.SSLOptions.VerifyMode :=  [];
        SSL.SSLOptions.VerifyDepth := 0;
  
        DATA.From.Address := username;
        DATA.Recipients.EMailAddresses := totarget;
        DATA.Subject := subject;
        DATA.Body.Text := body;
  
        if FileExists('D:\Test1.txt') then
           TIdAttachmentFile.Create(DATA.MessageParts, 'D:\Test1.txt');
  
        SMTP.IOHandler := SSL;
        SMTP.Host := 'smtp.live.com';
        SMTP.Port := 587 ;
        SMTP.Username := username;
        SMTP.Password := password;
        //  SMTP.SASLMechanisms;
        SMTP.UseTLS := utUseExplicitTLS;
  
        try
           try
             SMTP.Connect;
             SMTP.Send(DATA);
             Result := True;
           except
             on E:Exception do
             begin
                 ShowMessage('Cannot send E-Mail: ' + E.Message);
                 Result := False;
             end;
           end;
        finally
           if SMTP.Connected then SMTP.Disconnect;
        end;
    except
      on E : Exception do
      begin
        ShowMessage('Error in the function SendEmailDelphi: ' + E.Message);
        Result := False;
      end;
    end;
  
  end;
  
  procedure TForm1.FormCreate(Sender: TObject);
  begin
  Timer1.Enabled:= True;
  end;
  
  procedure TForm1.Timer1Timer(Sender: TObject);
  begin
  mail_username := 'email@gmail.com';
  mail_password := 'pass';
  mail_to := 'email@gmail.com';
  mail_subject := 'Text email from Delphi project';
  mail_body := 'this is a test email sent from Delphi project, do not reply';
  
   try
     begin
       Gmail(mail_username, mail_password, mail_to , mail_subject, mail_body);
     end;
   finally
  
   end;
  end;
  </code></pre>