Чтение писем Gmail с помощью SDK для Android

Я хочу читать письма Gmail в своем собственном приложении для Android. Есть ли способ сделать это с помощью Android-sdk? Если нет, то каковы другие варианты? разбор атома gmail?

Ответ 2

Возможно использование API GMail, вот несколько шагов, которые я нашел полезными.

  • Начните с официального примера, чтобы запустить GMailAPI, см. здесь
  • Следуя инструкциям, я нашел полезным прочитать о подписании приложения здесь, чтобы получить Step1 + 2 в правом правиле.
  • При запуске примера вы можете использовать информацию здесь для доступа к сообщениям. Вы можете, например, замените реализацию в MakeRequestTask.getDataFromApi
  • Обязательно добавьте, по крайней мере, область только для чтения для правильных разрешений. В образце области определены в массиве:

    private static final String[] SCOPES = { GmailScopes.GMAIL_LABELS, mailScopes.GMAIL_READONLY };

  • Мое намерение состояло в том, чтобы прочитать все предметы. Я использовал следующий код (который является адаптированным методом getDataFromApi из официального образца):

     private List<String> getDataFromApi() throws IOException {
         // Get the labels in the user account. "me" referes to the authentized user.
         String user = "me";
         List<String> labels = new ArrayList<String>();
    
         ListMessagesResponse response = mService.users().messages().list(user).execute();
    
         for (Message message : response.getMessages()) {
    
             Message readableMessage = mService.users().messages().get(user, message.getId()).execute();
             if (readableMessage.getPayload() != null) {
                 for (MessagePartHeader header : readableMessage.getPayload().getHeaders()) {
                     if (header.getName().compareToIgnoreCase("Subject") == 0) {
                         labels.add(header.getValue());
                    }
                }
            }
        }
    
        return labels;
    }