Daily Python Projects

Daily Python Projects

Build an Automated Daily News Digest Email Pipeline

Level: Real World

Ardit Sulce's avatar
Ardit Sulce
Dec 12, 2025
∙ Paid

Your task for today is to create an automated pipeline that fetches top news headlines every day, formats them into a clean digest, and emails them to you automatically — a perfect example of “set it and forget it” automation that runs in the cloud.

Project Task

Create an automated news digest pipeline that:

  • Uses the NewsAPI to fetch top headlines from a specific category

  • Retrieves the latest 5 news articles with titles and URLs

  • Formats the news into a clean, readable email message

  • Uses smtplib to automatically send the digest via email

  • Stores API credentials securely in environment variables

  • Runs as a standalone script that executes the entire pipeline

  • Can be scheduled to run once daily on PythonAnywhere

  • Provides status messages showing the automation progress

This project gives you hands-on practice with API integration, email automation, scheduling tasks, and cloud deployment — essential skills for building real-world automation pipelines that run without manual intervention.

Expected Output

Scheduling on PythonAnywhere

After creating your script, schedule it to run daily on PythonAnywhere:

  1. Create a free account at pythonanywhere.com

  2. Upload your script and .env file to your PythonAnywhere account

  3. Go to the “Tasks” tab in your dashboard

  4. Create a new scheduled task with your script path

  5. Set it to run once daily at your preferred time (e.g., 8:00 AM)

  6. Save the task and it will run automatically every day!

Join the Python & AI Builders Skool Community

Got questions to ask the author about this project? Join our Python & AI Builders community for weekly Python & AI videos and discussions:

https://skool.com/automateit

Skeleton and Solution

Below you will find both a downloadable skeleton.py file to help you code the project with comment guides and the downloadable solution.py file containing the correct solution.

Get the code skeleton here:

Skeleton

Keep reading with a 7-day free trial

Subscribe to Daily Python Projects to keep reading this post and get 7 days of free access to the full post archives.

Already a paid subscriber? Sign in
© 2025 Ardit Sulce · Privacy ∙ Terms ∙ Collection notice
Start your SubstackGet the app
Substack is the home for great culture