adfsmail 1.1
Библиотека для работы с почтой ADFS

# Библиотека AdfsMail

## Обзор
AdfsMail — это библиотека Python для взаимодействия с электронными почтовыми сервисами, предоставляющая простой способ доступа и управления электронной почтой внутри VPN или извне с использованием многофакторной аутентификации (MFA). Библиотека поддерживает базовые операции с электронной почтой, такие как получение писем, доступ к метаданным писем и работа с вложениями.

## Установка

Перед установкой AdfsMail убедитесь, что на вашей системе установлен Python. Установить AdfsMail можно с помощью pip:
```
pip install adfsmail
```

## Использование

### Внутри VPN

Для использования AdfsMail внутри VPN инициализируйте класс AdfsMail с вашим адресом электронной почты, паролем и доменом.

```
from adfsmail import AdfsMail

mail = AdfsMail(
    'user@domain.ru',
    'password',  # Замените на ваш реальный пароль
    'domain.ru'
)
```

### Вне VPN с использованием многофакторной аутентификации

При доступе к почтовому сервису извне VPN используйте AdfsMailMFA для обработки многофакторной аутентификации.

```
from adfsmail import AdfsMailMFA

mail = AdfsMailMFA(
    'user@domain.ru',
    'password',  # Замените на ваш реальный пароль
    'domain.ru'
)
```

### Получение писем

Получение первых 25 писем со своего ящика:

```
m = mail.get_mail()
```

Чтобы получить следующие 30 писем, укажите параметры offset (пропустить первые 25) и max_return (получить 30 сообщений):

```
m2 = mail.get_mail(offset=25, max_return=30)
```

Получение словаря доступных spa-ящиков:

```
spa = mail.get_available_spa()
```

Получение словаря доступных папок spa-ящика:

```
fold = mail.get_available_folders('spa@domain.ru')
```

Получение первых 25 писем со spa-ящика папки 'Входящие':

```
m_spa = get_mail_spa('spa@domain.ru', 'Входящие')
```

### Операции с письмами

Вы можете выполнять различные операции с полученными письмами, такие как получение информации об отправителе, получателях, теме, теле письма, дате и времени, а также работать с вложениями.

# Получить информацию об отправителе

```
# m[0] - первое письмо из списка
sender = m[0].get_from()
```

# Получить информацию о получателях

```
recipients = m[0].get_to()
```

# Получить тему письма

```
subject = m[0].get_subject()
```

# Получить тело письма

```
body = m[0].get_body()  # Обычно html
```

# Получить дату и время получения письма

```
datetime_received = m[0].get_datetime()
```

# Получить вложения

```
attachments = m[0].get_attachments()
```

# Получить имя файла вложения

```
# m[0].get_attachments()[0] - первое вложение письма
attachment_filename = m[0].get_attachments()[0].get_filename()
```

# Сохранить вложение в указанный путь

```
m[0].get_attachments()[0].save('path/to/save/file.xl')
```

# Получить количество вложений

```
attachments_count = m[0].get_attachments_count()
```

## Справочник API

В классах AdfsMail и AdfsMailMFA доступны следующие методы:

- get_mail(offset=0, max_return=25): Получает список писем, начиная с указанного offset и до max_return числа писем.
- get_from(): Возвращает отправителя письма.
- get_to(): Возвращает список получателей письма.
- get_subject(): Возвращает тему письма.
- get_body(): Возвращает тело письма.
- get_datetime(): Возвращает дату и время получения письма.
- get_attachments(): Возвращает список вложений в письме.
- get_attachments_count(): Возвращает количество вложений в письме.

Каждый объект вложения имеет следующие методы:

- get_filename(): Возвращает имя файла вложения.
- save(save_path): Сохраняет вложение по указанному пути.