-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsetup_test_emails.py
More file actions
101 lines (79 loc) · 3.16 KB
/
setup_test_emails.py
File metadata and controls
101 lines (79 loc) · 3.16 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
#!/usr/bin/env python3
"""
Skrypt do tworzenia przykładowych wiadomości email w skrzynce testowej.
"""
import os
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from datetime import datetime, timedelta
import time
def create_sample_emails():
"""Tworzy przykładowe wiadomości email."""
# Przykładowe wiadomości z różnymi datami
sample_emails = [
{
"subject": "Testowa wiadomość 1",
"body": "To jest pierwsza testowa wiadomość email.",
"date": datetime.now() - timedelta(days=30)
},
{
"subject": "Raport miesięczny",
"body": "Raport z działalności za ostatni miesiąc.\n\nPozdrawiam,\nSystem",
"date": datetime.now() - timedelta(days=15)
},
{
"subject": "Przypomnienie o spotkaniu",
"body": "Przypominam o jutrzejszym spotkaniu o godzinie 10:00.",
"date": datetime.now() - timedelta(days=5)
},
{
"subject": "Newsletter techniczny",
"body": "Najnowsze informacje ze świata technologii:\n- AI rozwija się błyskawicznie\n- Nowe frameworki Python",
"date": datetime.now() - timedelta(days=60)
},
{
"subject": "Aktualna wiadomość",
"body": "To jest najnowsza wiadomość w skrzynce.",
"date": datetime.now()
}
]
return sample_emails
def save_emails_to_maildir(emails, maildir_path):
"""Zapisuje wiadomości bezpośrednio do formatu Maildir."""
# Utwórz strukturę Maildir
os.makedirs(f"{maildir_path}/cur", exist_ok=True)
os.makedirs(f"{maildir_path}/new", exist_ok=True)
os.makedirs(f"{maildir_path}/tmp", exist_ok=True)
for i, email_data in enumerate(emails):
# Utwórz wiadomość
msg = MIMEMultipart()
msg["From"] = "sender@example.com"
msg["To"] = "testuser@example.com"
msg["Subject"] = email_data["subject"]
msg["Date"] = email_data["date"].strftime("%a, %d %b %Y %H:%M:%S +0000")
# Dodaj treść
body = MIMEText(email_data["body"], "plain", "utf-8")
msg.attach(body)
# Wygeneruj unikalną nazwę pliku
timestamp = int(email_data["date"].timestamp())
filename = f"{timestamp}.{i}.localhost:2,"
# Zapisz do folderu new (nowe wiadomości)
filepath = f"{maildir_path}/new/{filename}"
with open(filepath, "w", encoding="utf-8") as f:
f.write(msg.as_string())
print(f"✅ Utworzono wiadomość: {email_data['subject']}")
def main():
"""Główna funkcja skryptu."""
print("🔧 Tworzenie przykładowych wiadomości email...")
# Ścieżka do maildir użytkownika testowego
maildir_path = "./docker/mail/testuser@example.com"
# Utwórz przykładowe wiadomości
emails = create_sample_emails()
# Zapisz do Maildir
save_emails_to_maildir(emails, maildir_path)
print(f"✅ Utworzono {len(emails)} przykładowych wiadomości")
print(f"📁 Lokalizacja: {maildir_path}")
print("\n🚀 Teraz możesz uruchomić: docker-compose up")
if __name__ == "__main__":
main()