feat: Implement email sending utilities and templates for job notifications
Some checks failed
CI/CD Pipeline / test (push) Failing after 4m9s

- Added email_service.py for sending emails with SMTP configuration.
- Introduced email_templates.py to render job alert email subjects and bodies.
- Enhanced scraper.py to extract contact information from job listings.
- Updated settings.js to handle negative keyword input validation.
- Created email.html and email_templates.html for managing email subscriptions and templates in the admin interface.
- Modified base.html to include links for email alerts and templates.
- Expanded user settings.html to allow management of negative keywords.
- Updated utils.py to include functions for retrieving negative keywords and email settings.
- Enhanced job filtering logic to exclude jobs containing negative keywords.
This commit is contained in:
2025-11-28 18:15:08 +01:00
parent 8afb208985
commit 2185a07ff0
23 changed files with 2660 additions and 63 deletions

View File

@@ -9,7 +9,7 @@
}
},
"http": {
"user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:141.0) Gecko/20100101 Firefox/141.0",
"user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:145.0) Gecko/20100101 Firefox/145.0",
"request_timeout": 30,
"max_retries": 3,
"backoff_factor": 2,
@@ -22,7 +22,22 @@
},
"scraper": {
"base_url": "https://{region}.craigslist.org/search/jjj?query={keyword}&sort=rel",
"config_dir": "config"
"config_dir": "config",
"negative_keywords": []
},
"email": {
"enabled": false,
"from_address": "jobs@example.com",
"recipients": [],
"smtp": {
"host": "smtp.example.com",
"port": 587,
"username": "",
"password": "",
"use_tls": true,
"use_ssl": false,
"timeout": 30
}
},
"users": [
{ "username": "anonymous", "is_admin": false, "password": "" },