Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/18: Рейтинг темы: голосов - 18, средняя оценка - 4.89
 Аватар для SadiQ228
-4 / 24 / 7
Регистрация: 16.12.2016
Сообщений: 716

CURL авторизация в Gmail для получения списка писем

18.05.2018, 02:02. Показов 3688. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
странные дела не понятные для меня..помогите пожалуйста советом
вот код:
Кликните здесь для просмотра всего текста
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include "string"
#include "stdafx.h"
#define CURL_STATICLIB
#include "curl/curl.h"
#include <locale>
#include <iostream>
#ifdef _DEBUG
# pragma comment (lib, "curl/libcurl_a_debug.lib")
#else
# pragma comment (lib, "curl/libcurl_a.lib")
#endif
#pragma warning(disable : 4996)
using namespace std;
 
 
int main()
{
    const char * login = "test@gmail.com";
    const char * password = "test";
 
        CURL *curl;
        CURLcode res = CURLE_OK;
 
        curl = curl_easy_init();
        if (curl) {
            curl_easy_setopt(curl, CURLOPT_USERNAME, login);
            curl_easy_setopt(curl, CURLOPT_PASSWORD, password);
            curl_easy_setopt(curl, CURLOPT_URL, "imaps://imap.gmail.com:993/INBOX/;UID=1");
            curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0);
            curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0);
            curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L);
            res = curl_easy_perform(curl);
            if (res != CURLE_OK)
                fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res));
            curl_easy_cleanup(curl);
        }
        return (int)res;
}

запускаю, все компилится.
вот лог консоли:
Кликните здесь для просмотра всего текста
* Trying 173.194.***.***...
* TCP_NODELAY set
* Connected to imap.gmail.com (173.194.***.***) port 993 (#0)
* schannel: SSL/TLS connection with imap.gmail.com port 993 (step 1/3)
* schannel: disabled server certificate revocation checks
* schannel: verifyhost setting prevents Schannel from comparing the supplied target name with the subject names in server certificates.
* schannel: sending initial handshake data: sending 188 bytes...
* schannel: sent initial handshake data: sent 188 bytes
* schannel: SSL/TLS connection with imap.gmail.com port 993 (step 2/3)
* schannel: failed to receive handshake, need more data
* schannel: SSL/TLS connection with imap.gmail.com port 993 (step 2/3)
* schannel: encrypted data got 2678
* schannel: encrypted data buffer: offset 2678 length 4096
* schannel: sending next handshake data: sending 93 bytes...
* schannel: SSL/TLS connection with imap.gmail.com port 993 (step 2/3)
* schannel: encrypted data got 379
* schannel: encrypted data buffer: offset 379 length 4096
* schannel: encrypted data length: 95
* schannel: SSL/TLS handshake complete
* schannel: SSL/TLS connection with imap.gmail.com port 993 (step 3/3)
* schannel: stored credential handle in session cache
* schannel: client wants to read 16384 bytes
* schannel: encdata_buffer resized 17408
* schannel: encrypted data buffer: offset 95 length 17408
* schannel: Curl_read_plain returned CURLE_AGAIN
* schannel: encrypted data buffer: offset 95 length 17408
* schannel: decrypted data length: 66
* schannel: decrypted data added: 66
* schannel: decrypted data cached: offset 66 length 16384
* schannel: encrypted data buffer: offset 0 length 17408
* schannel: decrypted data buffer: offset 66 length 16384
* schannel: schannel_recv cleanup
* schannel: decrypted data returned 66
* schannel: decrypted data buffer: offset 0 length 16384
< * OK Gimap ready for requests from 194.226.***.* z4mb42153014ljh
> A001 CAPABILITY
* schannel: client wants to read 16384 bytes
* schannel: encrypted data buffer: offset 0 length 17408
* schannel: encrypted data got 248
* schannel: encrypted data buffer: offset 248 length 17408
* schannel: decrypted data length: 219
* schannel: decrypted data added: 219
* schannel: decrypted data cached: offset 219 length 16384
* schannel: encrypted data buffer: offset 0 length 17408
* schannel: decrypted data buffer: offset 219 length 16384
* schannel: schannel_recv cleanup
* schannel: decrypted data returned 219
* schannel: decrypted data buffer: offset 0 length 16384
< * CAPABILITY IMAP4rev1 UNSELECT IDLE NAMESPACE QUOTA ID XLIST CHILDREN X-GM-EXT-1 XYZZY SASL-IR AUTH=XOAUTH2 AUTH=PLAIN AUTH=PLAIN-CLIENTTOKEN AUTH=OAUTHBEARER AUTH=XOAUTH
< A001 OK Thats all she wrote! z4mb42153014ljh
> A002 AUTHENTICATE PLAIN MXN0c3Ryb3kubGxjQGdtYWlsLmNvbQAxc3RzdHJv eS5sbGNAZ21haWwuY29tAGdvb2dsZTEhMkA=
* schannel: client wants to read 16384 bytes
* schannel: encrypted data buffer: offset 0 length 17408
* schannel: encrypted data got 492
* schannel: encrypted data buffer: offset 492 length 17408
* schannel: decrypted data length: 463
* schannel: decrypted data added: 463
* schannel: decrypted data cached: offset 463 length 16384
* schannel: encrypted data buffer: offset 0 length 17408
* schannel: decrypted data buffer: offset 463 length 16384
* schannel: schannel_recv cleanup
* schannel: decrypted data returned 463
* schannel: decrypted data buffer: offset 0 length 16384
< * NO [WEBALERT https://accounts.google.com/si... 0Qth1Vx84] Web login required.
< A002 NO [ALERT] Please log in via your web browser: https://support.google.com/mai... swer/78754 (Failure)
* Closing connection 0
* schannel: shutting down SSL/TLS connection with imap.gmail.com port 993
* schannel: clear security context handle
curl_easy_perform() failed: Login denied
Для продолжения нажмите любую клавишу . . .


и на почту приходит письмо вот такого содержания:
Review blocked sign-in attempt
Hi William,
Google just blocked someone from signing into your Google Account test@gmail.com from an app that may put your account at risk.
Less secure app
Friday, May 18, 2018 1:49 AM (Moscow Time)
St Petersburg, Russia*
Don't recognize this activity?
If you didn't recently receive an error while trying to access a Google service, like Gmail, from a non-Google application, someone may have your password.

SECURE YOUR ACCOUNT

Are you the one who tried signing in?
Google will continue to block sign-in attempts from the app you're using because it has known security problems or is out of date. You can continue to use this app by allowing access to less secure apps, but this may leave your account vulnerable.

The Google Accounts team
я не могу коннектить к гуглу по имапу? обязательно oauth2? объясните пожалуйста что происходит
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.05.2018, 02:02
Ответы с готовыми решениями:

IMAP получения отсортированного списка писем
Всем привет. Стоит такая задача. Надо получить ограниченный список (к примеру, не больше 50) и список этот должен быть отсортирован по...

Создать запрос, для получения авторов писем
Доброго времени суток. У меня в базе есть таблица Messages. Структура такая: Отсюда нужно взять данные так, чтобы выводились они в таком...

Почтовый клиент: программа для получения и чтения писем
Всем привет. Есть некое подобие почтового клиента (точнее программа с простым интерфейсом, умеющая посылать письма), как сделать , чтобы...

5
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
18.05.2018, 02:44
Лучший ответ Сообщение было отмечено SadiQ228 как решение

Решение

Цитата Сообщение от SadiQ228 Посмотреть сообщение
я не могу коннектить к гуглу по имапу? обязательно oauth2? объясните пожалуйста что происходит
Ага, по умолчанию не можете. По не умолчанию - oauth2 отключался через веб-морду Гугла где-то в недрах настройки аккаунта. Где точно уже не помню.
1
 Аватар для SadiQ228
-4 / 24 / 7
Регистрация: 16.12.2016
Сообщений: 716
18.05.2018, 02:46  [ТС]
а вы могли бы в двух словах описать как коннектить через это штуку? не кодом а словами хотя бы хоть как то?
зачем нам imap и pop3 если их не заюзать?)
0
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
18.05.2018, 02:55
Цитата Сообщение от SadiQ228 Посмотреть сообщение
а вы могли бы в двух словах описать как коннектить через это штуку? не кодом а словами хотя бы хоть как то?
Смутно вспоминается что если выбрать oauth2, Thunderbird пытался открыть веб-форму для логина. Но в итоге что-то в этой форме не завелось, я отрубил oauth2 и забыл о нем как о страшном сне.
0
 Аватар для SadiQ228
-4 / 24 / 7
Регистрация: 16.12.2016
Сообщений: 716
18.05.2018, 02:58  [ТС]
если моя программа, регистрирует gmail и пробует сразу же в него войти, то у меня такая фишка не пройдет и мне придется юзать oauth2?(((
0
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
18.05.2018, 03:04
Ну, программа может попробовать сначала отключать oauth2 и только потом заходить. А сразу да, войти не выйдет.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.05.2018, 03:04
Помогаю со студенческими работами здесь

Авторизация curl (различие между curl и ajax запросами)
Есть ли различие в передаче данных в json формате через curl и ajax? Я хочу написать запрос, который будет авторизировать пользователя на...

Авторизация на сайте для парсинга с применением curl
Доброго всем времени суток. Прошу вашей помощи по авторизации с помощью curl на сайте https://www.marathonbet.com/su/ Проверил...

Чтение писем с gmail
Привет! Нужно читать письма с gmail. Понаходил какие-то библиотеки, но завести их не получилось. Плюнул, думаю, попробую сделать в...

Отправка писем через gmail
Доброго времени суток. Ребят подскажите как можно отправлять письма через gmail, я пытаюсь сделать так: var IdSMTP: TIdSMTP;...

Резервное копирование писем с gmail.com
Доброго дня. Извиняюсь за нубство. Помогите, пожалуйста, решить проблему. В аккаунте gmail превышен лимит свободного места (15 гб). ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США. Нашел на реддите интересную статью под названием «Кто-нибудь знает, где получить бесплатный компьютер или. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru