MSMail

class · пространство имён z3n7.Api · исходник Mail/MSMail.cs

public class MSMail

Доступ к ящикам Microsoft через Microsoft Graph по OAuth refresh token. Учётные данные хранятся в таблице mail базы FastDb (создаётся, если её нет): строка адреса из переменной проекта mail даёт thunderbird_client_id и graph_refresh_token.

Конструкторы

MSMail

public MSMail(IZennoPosterProjectModel project, FastDb db, string proxy = "", bool log = false)

исходник

Создаёт клиент. Если задана переменная mail, загружает её учётные данные и сразу получает токен доступа; бросает исключение, если в таблице нет учётных данных для неё или запрос токена не удался.

Параметр Описание
db База с таблицей mail.
proxy Прокси для запросов к Graph (формат Rqst). Сам запрос токена идёт напрямую.
log Писать запросы и ответы в лог.

Методы

CleanAll

public void CleanAll(int batchSize = 50)

исходник

Удаляет все письма порциями по batchSize.

Параметр Описание
batchSize Сколько писем запрашивать за один проход.

Delete

public string Delete(string endpoint)

исходник

Отправляет DELETE-запрос в Microsoft Graph.

Параметр Описание
endpoint Путь после https://graph.microsoft.com/v1.0/, например me/messages.

Возвращает: Тело ответа. При статусе не 2xx бросает исключение.

DelLast

public void DelLast()

исходник

Удаляет самое новое письмо, если оно есть.

Get

public string Get(string endpoint)

исходник

Отправляет GET-запрос в Microsoft Graph.

Параметр Описание
endpoint Путь после https://graph.microsoft.com/v1.0/, например me/messages.

Возвращает: Тело ответа. При статусе не 2xx бросает исключение.

GetMessages

public JArray GetMessages(int top = 10)

исходник

Письма ящика, сначала новые.

Параметр Описание
top Сколько.

ImportFromJson

public void ImportFromJson(string json)

исходник

Добавляет ящики в таблицу mail из JSON-массива; уже существующие адреса не трогает.

Параметр Описание
json Массив объектов с email, password, access_token, refresh_token, thunderbird_client_id, graph_access_token, graph_refresh_token.

Post

public string Post(string endpoint, string jsonBody)

исходник

Отправляет POST-запрос с телом в JSON в Microsoft Graph.

Параметр Описание
endpoint Путь после https://graph.microsoft.com/v1.0/, например me/messages.
jsonBody Тело в JSON.

Возвращает: Тело ответа. При статусе не 2xx бросает исключение.

SelfCheck

public bool SelfCheck(int timeoutSeconds = 30, int checkIntervalSeconds = 3)

исходник

Отправляет письмо с уникальной темой самому ящику и ждёт, пока оно появится среди последних 20 писем.

Параметр Описание
timeoutSeconds Сколько ждать.
checkIntervalSeconds Пауза между проверками.

Возвращает: true, если письмо пришло вовремя.

SendMail

public void SendMail(string toEmail, string subject, string body)

исходник

Отправляет текстовое сообщение.

Параметр Описание
toEmail Получатель.
subject Тема.
body Текст.