Mail agent added
This commit is contained in:
95
docs/ENVIRONMENT_VARIABLES.md
Normal file
95
docs/ENVIRONMENT_VARIABLES.md
Normal file
@@ -0,0 +1,95 @@
|
||||
# Работа с переменными окружения в Python
|
||||
|
||||
## Основные способы
|
||||
|
||||
### 1. Через `os.environ` (стандартная библиотека)
|
||||
|
||||
```python
|
||||
import os
|
||||
|
||||
# Чтение с безопасным значением по умолчанию
|
||||
email = os.environ.get('EMAIL_ADDRESS', 'default@example.com')
|
||||
|
||||
# Чтение обязательной переменной
|
||||
password = os.environ.get('EMAIL_PASSWORD')
|
||||
if not password:
|
||||
raise ValueError("EMAIL_PASSWORD not set")
|
||||
|
||||
# Прямой доступ (вызовет KeyError, если переменной нет)
|
||||
email = os.environ['EMAIL_ADDRESS']
|
||||
```
|
||||
|
||||
### 2. С использованием python-dotenv (рекомендуется для разработки)
|
||||
|
||||
```python
|
||||
import os
|
||||
from dotenv import load_dotenv
|
||||
|
||||
# Загрузить переменные из .env файла
|
||||
load_dotenv()
|
||||
|
||||
# Теперь работаем с переменными
|
||||
email = os.environ.get('EMAIL_ADDRESS')
|
||||
```
|
||||
|
||||
## Установка python-dotenv
|
||||
|
||||
```bash
|
||||
pip install python-dotenv
|
||||
```
|
||||
|
||||
Или добавьте в зависимости проекта (уже добавлено в `pyptoject.toml`):
|
||||
```toml
|
||||
dependencies = [
|
||||
"python-dotenv>=1.0.0"
|
||||
]
|
||||
```
|
||||
|
||||
## Настройка .env файла
|
||||
|
||||
1. Скопируйте `example.env` в `.env`:
|
||||
```bash
|
||||
cp example.env .env
|
||||
```
|
||||
|
||||
2. Отредактируйте `.env` и добавьте свои данные:
|
||||
```env
|
||||
EMAIL_ADDRESS=your_email@gmail.com
|
||||
EMAIL_PASSWORD=your_app_password
|
||||
IMAP_HOST=imap.gmail.com
|
||||
IMAP_PORT=993
|
||||
SMTP_HOST=smtp.gmail.com
|
||||
SMTP_PORT=587
|
||||
```
|
||||
|
||||
3. Убедитесь, что `.env` добавлен в `.gitignore` (уже добавлено)
|
||||
|
||||
## Пример использования в MailOrderBot
|
||||
|
||||
```python
|
||||
import os
|
||||
from dotenv import load_dotenv
|
||||
from mail_order_bot.email_client import EmailClient
|
||||
|
||||
# Загрузить переменные из .env файла
|
||||
load_dotenv()
|
||||
|
||||
# Чтение переменных
|
||||
EMAIL = os.environ.get('EMAIL_ADDRESS')
|
||||
PASSWORD = os.environ.get('EMAIL_PASSWORD')
|
||||
|
||||
# Создание клиента
|
||||
client = EmailClient(
|
||||
imap_host='imap.gmail.com',
|
||||
smtp_host='smtp.gmail.com',
|
||||
email=EMAIL,
|
||||
password=PASSWORD
|
||||
)
|
||||
```
|
||||
|
||||
## Безопасность
|
||||
|
||||
- НЕ коммитьте `.env` файл в git
|
||||
- Используйте `.env.example` как шаблон
|
||||
- Храните реальные пароли только в `.env` (уже добавлено в `.gitignore`)
|
||||
|
||||
Reference in New Issue
Block a user