Files
Lottery-Tracker/EMAIL_SETUP.md

209 lines
5.0 KiB
Markdown

# Email Configuration for Lottery Jackpot Alerts
## Setup Instructions
### 1. Install Required Package
```bash
pip install schedule
```
### 2. Configure Email Settings
Edit `email_sender.py` and update the `EMAIL_CONFIG` section:
```python
EMAIL_CONFIG = {
'smtp_server': 'smtp.gmail.com', # Your email provider's SMTP server
'smtp_port': 587,
'sender_email': 'your-email@gmail.com', # Your email address
'sender_password': 'your-app-password', # Your app-specific password
'recipient_email': 'recipient@example.com', # Where to send the report
}
```
### 3. Email Provider Settings
#### For Gmail:
1. **Enable 2-Factor Authentication** on your Google account
2. **Generate App Password**:
- Go to: https://myaccount.google.com/apppasswords
- Select "Mail" and "Windows Computer"
- Copy the 16-character password
- Use this password in `sender_password` (NOT your regular Gmail password)
3. SMTP Settings:
- Server: `smtp.gmail.com`
- Port: `587`
#### For Outlook/Hotmail:
- Server: `smtp-mail.outlook.com`
- Port: `587`
- Use your regular email and password
#### For Yahoo:
- Server: `smtp.mail.yahoo.com`
- Port: `587`
- Generate app password at: https://login.yahoo.com/account/security
#### For Other Providers:
Search for "[Your Provider] SMTP settings" to find the correct server and port.
### 4. Test the Email
Uncomment this line in the `main()` function to send a test email immediately:
```python
send_daily_jackpots()
```
Then run:
```bash
python email_sender.py
```
### 5. Schedule Daily Emails
The script is configured to send emails at **7:00 AM** every day.
To run it continuously:
```bash
python email_sender.py
```
Keep the terminal window open. The script will:
- Wait until 7:00 AM
- Fetch current jackpots
- Send formatted email
- Repeat daily
### 6. Run as Background Service (Optional)
#### Windows - Task Scheduler:
1. Open Task Scheduler
2. Create Basic Task
3. Name: "Lottery Jackpot Email"
4. Trigger: Daily at 7:00 AM
5. Action: Start a program
- Program: `python`
- Arguments: `d:\Projects\Dev\Lottery\email_sender.py`
6. Finish
#### Windows - NSSM (Non-Sucking Service Manager):
```bash
# Install NSSM
choco install nssm
# Create service
nssm install LotteryEmail python d:\Projects\Dev\Lottery\email_sender.py
# Start service
nssm start LotteryEmail
```
#### Linux - Cron Job:
```bash
# Edit crontab
crontab -e
# Add this line (runs at 7:00 AM daily)
0 7 * * * /usr/bin/python3 /path/to/email_sender.py
```
#### Linux - systemd service:
Create `/etc/systemd/system/lottery-email.service`:
```ini
[Unit]
Description=Lottery Jackpot Email Service
After=network.target
[Service]
Type=simple
User=yourusername
WorkingDirectory=/path/to/Lottery
ExecStart=/usr/bin/python3 /path/to/email_sender.py
Restart=always
[Install]
WantedBy=multi-user.target
```
Then:
```bash
sudo systemctl enable lottery-email
sudo systemctl start lottery-email
```
## Email Features
The automated email includes:
- 🎰 **Powerball** jackpot (US)
- 🎰 **Mega Millions** jackpot (US)
- 🎰 **Lotto Max** jackpot (Canada - TAX FREE!)
- 🎰 **Lotto 6/49** jackpot (Canada - TAX FREE!)
- 📅 **Timestamp** of when data was fetched
- 💡 **Reminder** about Canadian tax-free winnings
- 🎨 **Beautiful HTML formatting** with colors and styling
## Customization
### Change Send Time:
Edit this line in `email_sender.py`:
```python
schedule.every().day.at("07:00").do(send_daily_jackpots)
```
Examples:
- `"09:30"` - 9:30 AM
- `"18:00"` - 6:00 PM
- `"00:00"` - Midnight
### Send to Multiple Recipients:
Change the `send_email()` function:
```python
msg['To'] = "email1@example.com, email2@example.com, email3@example.com"
```
### Send Multiple Times Per Day:
Add multiple schedule lines:
```python
schedule.every().day.at("07:00").do(send_daily_jackpots)
schedule.every().day.at("19:00").do(send_daily_jackpots)
```
## Troubleshooting
### "Authentication failed":
- Make sure you're using an **app password**, not your regular password (for Gmail)
- Check that 2FA is enabled on your account
- Verify SMTP server and port are correct
### "Connection refused":
- Check your firewall settings
- Verify SMTP port is correct (usually 587 or 465)
- Try port 465 with `SMTP_SSL` instead of `SMTP` with `starttls()`
### Script stops running:
- Check if your computer went to sleep
- Use Task Scheduler or systemd to auto-restart
- Check logs for error messages
### Jackpots not updating:
- Websites may have changed their HTML structure
- Check if Playwright browser is installed: `playwright install chromium`
- Test the scraper functions individually
## Security Notes
⚠️ **IMPORTANT**:
- Never commit `email_sender.py` with your real credentials to Git
- Use environment variables for sensitive data in production
- Keep your app password secure
- Don't share your app password with anyone
## Support
If you encounter issues:
1. Run the test email first to verify configuration
2. Check error messages in the console
3. Verify internet connection
4. Confirm email provider settings
5. Test scraping functions individually