Получить ссылку из письма gmail без использования браузера.

Есть задача протестировать функцию восстановления пароля. При использовании приёмочных тестов codeception проблем не возникает. Но я хочу попробовать сделать это функциональными тестами. Вопрос в том можно ли как нибудь без браузера получить доступ к письму на gmail? Например через API.

smtp (pop3, imap) клиент? Что-то гуглом должно поддерживаться. Библиотеки для протоколов тоже будут полюбому

Конечно же можно и даже нужно. Сторонние third-party приложения ведь не через UI забирают информацию :slight_smile: Для этого есть отличный Gmail API:

Конкретно для получения содержания письма и пример того как это можно сделать находится тут:

1 лайк

Спасибо за быстрый ответ, буду пробовать!

Во время выполнения метода “getMessage” появляется ошибка " (400) Invalid id value" .
ID сообщения я взял из оригинала письма (то что между <>) :
Message-ID: <************************>

Но на самом деле мне во время выполнения теста ID письма будет не известен. Мне надо как-то обратится к последнему письму. (ну или к единственному, если допустить что перед запуском теста я буду чистить почту)

Вопрос решился с помощью метода “listMessages”, который возвращает массив всех писем.

Добрый день,

Делал подобную вещь, пришлось парсить письмо и заголовки самому, через проблем с кодировками.

Делаю так,
Получаем все письмо по заданому критерию, в моем случае на С#

request.Q = “subject:” + subject + " after:" + DateTime.Now.AddDays(-1).ToString(“yyyy/M/dd”);
где request ето UsersResource.MessagesResource.ListRequest

получаем список ІД подходящих по критерию,
дальше загружаем письма в таком формате FormatEnum.Raw

Использую свой парсер и работаю с обєктом Емейл.

В котором есть линки, изображения и все проперти.

Можно использовать гугловский обьект Message.

Будут вопросы, пишите.

Удачи Вам.

Забыл сказать про IMAP, его не используете, стабильности не буде (из личного опыта).

Регулярные ошибки, разве что в цыкле его гонять.

АРІ работает отлично, стабильно, надежно!

У в нем есть недоработки, которие фиксить никто не будет.

Никогда не было проблем с IMAP у GMail, так же из лтчного опыта :slight_smile: (сделано было с помощью javax.mail). Возможно, у Вас реализация работы была такая, не стабильная? :stuck_out_tongue:

1 лайк

Возможно вам удалось сделать лучше, возможно потому что у нас несколько машын на один ящик ходили. Отказались от imap, всеравно были проблемы с кодировками, API работает наура,

Доброго времени суток
подскажите пожалуйста как подключить Gmail API к проекту на codeception + webdriver
тестировщики все же на форуме :slight_smile: