Files
Lottery-Tracker/EMAIL_SETUP.md

5.0 KiB

Email Configuration for Lottery Jackpot Alerts

Setup Instructions

1. Install Required Package

pip install schedule

2. Configure Email Settings

Edit email_sender.py and update the EMAIL_CONFIG section:

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:
  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:

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:

send_daily_jackpots()

Then run:

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:

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):

# 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:

# 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:

[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:

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:

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:

msg['To'] = "email1@example.com, email2@example.com, email3@example.com"

Send Multiple Times Per Day:

Add multiple schedule lines:

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