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.5 KiB
Markdown
21 lines
1.5 KiB
Markdown
# Langkah 2: amaran e-mel
|
|
|
|
🌐 [English](Step-2-Email-Alert) · [Dansk](Step-2-Email-Alert-da) · **Bahasa Melayu**
|
|
|
|
**Tugasan.** Apabila harga di bawah sasaran (100), hantar e-mel kepada diri sendiri dengan tajuk produk, harga dan pautan untuk membelinya. Jauhkan alamat e-mel dan kata laluan daripada kod.
|
|
|
|
**Apa yang dibina.** `check_price` membandingkan harga dengan `TARGET_PRICE`. `SmtpNotifier` menyambung dengan `smtplib` pada port 587, memulakan TLS, log masuk dan menghantar mesej. `SMTP_ADDRESS`, `EMAIL_ADDRESS` dan `EMAIL_PASSWORD` dibaca daripada `.env` dengan `python-dotenv`; `.env.example` menunjukkan kuncinya.
|
|
|
|
Tangkapan skrin datang daripada larian yang sambungan SMTP-nya diganti dengan stub, jadi tiada e-mel dihantar; yang kedua dilukis daripada mesej yang dibina oleh kod.
|
|
|
|

|
|
|
|

|
|
|
|
**Apa yang kita perolehi**
|
|
|
|
- Perbualan SMTP: connect, `starttls()`, `login()`, `sendmail()`; Gmail memerlukan kata laluan aplikasi.
|
|
- Pemboleh ubah persekitaran dan fail `.env` menjauhkan rahsia daripada repositori (`.env` ada dalam `.gitignore`).
|
|
- Peraturan "di bawah sasaran" ialah fungsi tulen yang kecil dan mudah diuji (bawah, sama, atas).
|
|
- Ujian dengan kelas SMTP palsu: ujian tidak pernah menghantar e-mel sebenar.
|