Delivers MIL-006 tasks 1 to 4: the wiki pages in `docs/wiki/` in English, Danish and Bahasa Malaysia (Home plus one page per lecture step, each with its screenshot and a "what we gained" section, and a shared `_Sidebar.md`), laid out as `framework/process/wiki.md` says (English without suffix, `-da` and `-ms` for the others, a language line on every page). The README links to the wiki. Checked: the three languages have the same five pages; every page starts with the language line; code, commands and file names stay in English. There is no QC checklist for wiki pages, so there is no RC record. Publishing to the host's wiki (task 5, issue #31) follows after this merge. Task: MIL-006#1 Task: MIL-006#2 Task: MIL-006#3 Task: MIL-006#4
21 lines
1.4 KiB
Markdown
21 lines
1.4 KiB
Markdown
# Trin 2: e-mail-alarm
|
|
|
|
🌐 [English](Step-2-Email-Alert) · **Dansk** · [Bahasa Melayu](Step-2-Email-Alert-ms)
|
|
|
|
**Opgave.** Når prisen er under en målpris (100), send en e-mail til dig selv med produktets titel, prisen og et link til at købe det. Hold e-mailadresse og adgangskode ude af koden.
|
|
|
|
**Det vi byggede.** `check_price` sammenligner prisen med `TARGET_PRICE`. `SmtpNotifier` forbinder med `smtplib` på port 587, starter TLS, logger ind og sender beskeden. `SMTP_ADDRESS`, `EMAIL_ADDRESS` og `EMAIL_PASSWORD` læses fra `.env` med `python-dotenv`; `.env.example` viser nøglerne.
|
|
|
|
Skærmbillederne stammer fra en kørsel, hvor SMTP-forbindelsen er erstattet af en stub, så der blev ikke sendt mail; det andet er tegnet ud fra den besked, koden bygger.
|
|
|
|

|
|
|
|

|
|
|
|
**Det vi lærte**
|
|
|
|
- SMTP-samtalen: connect, `starttls()`, `login()`, `sendmail()`; Gmail kræver en app-adgangskode.
|
|
- Miljøvariabler og `.env`-filer holder hemmeligheder ude af repositoryet (`.env` står i `.gitignore`).
|
|
- Reglen "under målet" er en lille ren funktion, der er let at teste (under, lig med, over).
|
|
- Tests med en falsk SMTP-klasse: testene sender aldrig rigtig mail.
|