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 |
Текст. |