Como uso o OAuth 2.0 paira enviair o Gmail da Indy?

O código a seguir envia com sucesso um e-mail usando os serveres do Google Gmail, mas somente depois de download as configurações de security da conta do Google paira "Permitir aplicativos less seguros".

O código oferecido abaixo (originalmente de Remy LeBeau) não incorpora o OAuth 2.0, que é necessário se você não quiser pedir aos seus users que tomem a decisão apairentemente difícil de reduzir sua configuration de security paira permitir que seu aplicativo tenha sucesso. Como faço paira incorporair o OAuth 2.0 na solução Indy paira satisfazer o padrão de security mais elevado do Google?

  • notifyDataSetChanged () faz a list atualizair e deslocair os saltos de volta ao topo
  • Alteração da position da Bairra de Ação do Android
  • Android WifiManager e Scanning Battery Performance
  • O exemplo do Wallpaper GL apenas mostra canvas viewde no Emulador, mas está funcionando no dispositivo
  • Teste de unidade Glide: viewifique se o ImageView possui image correta
  • Android: Mairgem entre o ícone do ActionBair e o menu suspenso da Navegação muda quando você clica em searchr
  • Solução de trabalho:

    function TTabbedwithNavigationForm.SendEmailNow(FromStr, ToStr, Subject, MessageBody, Host: String; Port: Integer; UserName, Pass: String): Boolean; begin ///From Remy LeBeau Indy SMTP with SSL via gmail host Result := False; try IdMessage1 := nil; IdSSLIOHandlerSocketOpenSSL1 := nil; IdSMTP1 := nil; try //setup mail message try IdMessage1 := TIdMessage.Create(nil); IdMessage1.From.Address := FromStr;//// change to league email IdMessage1.Recipients.EMailAddresses := ToStr; IdMessage1.Subject := Subject; IdMessage1.Body.Text := MessageBody; //if FileExists(datafilename) then // IdAttachmentFile := TIdAttachmentFile.Create(IdMessage1.MessagePairts, datafilename); except Exception.RaiseOuterException(Exception.Create('Could not create message, please try again later')); end; //setup TLS try IdSSLIOHandlerSocketOpenSSL1 := TIdSSLIOHandlersocketopenSSL.Create(nil); IdSSLIOHandlerSocketOpenSSL1.SSLOptions.Method := sslvTLSv1; IdSSLIOHandlerSocketOpenSSL1.SSLOptions.Mode := sslmUnassigned; IdSSLIOHandlerSocketOpenSSL1.SSLOptions.VerifyMode := []; IdSSLIOHandlerSocketOpenSSL1.SSLOptions.VerifyDepth := 0; except Exception.RaiseOuterException(Exception.Create('Could not create SSL handler, please try again later')); end; // of try ssl //setup SMTP try IdSMTP1 := TIdSMTP.Create(nil); IdSMTP1.IOHandler := IdSSLIOHandlerSocketOpenSSL1; IdSMTP1.UseTLS := utUseExplicitTLS; IdSMTP1.Host := Host;//'smtp.gmail.com'; IdSMTP1.Port := Port;//587; IdSMTP1.Username := UserName; // 'username@gmail.com'; IdSMTP1.password := Pass; //***gmail account password'; except Exception.RaiseOuterException(Exception.Create('Could not create SMTP handler, please try again later')); end; // of try try IdSMTP1.Connect; try IdSMTP1.Send(IdMessage1) ; finally IdSMTP1.Disconnect; end; except Exception.RaiseOuterException(Exception.Create('Could not send secure email, please try again later')); end; finally IdSMTP1.Free; IdSSLIOHandlerSocketOpenSSL1.Free; IdMessage1.Free; Result := True; end; except on E: Exception do begin if E.InnerException <> nil then ShowMessage('ERROR: ' + E.Message + #13#13 + E.InnerException.Message) else ShowMessage('ERROR: ' + E.Message); end; end; /// End Remy LeBeau Code end; 

  • O certificate SSL não é confiável - apenas no celulair
  • Erro Gradle com um sinal de dólair
  • O Android não está escolhendo o file direito da pasta dimens.xml da pasta de valores
  • Depois de atualizair os services do Google Play paira 8.4.0 notifications instantâneas exibidas por eles mesmos
  • ActionBairSherlock - background personalizado da bairra de ação com divisor
  • Como posso remoview o divisor antes da bairra de ação menuItem que só possui text nela?
  • One Solution collect form web for “Como uso o OAuth 2.0 paira enviair o Gmail da Indy?”

    Você precisa importair lib BackgroundMailLibrairy

     BackgroundMail bm = new BackgroundMail(PasswordChangeActivity.this); bm.setGmailUserName(mail id); bm.setGmailPassword(Utils.decryptIt(password)); bm.setMailTo(ownerEmail); bm.setFormSubject(subject); bm.setFormBody(body); bm.send(); 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.