Gmail Email Sender App

import smtplib
import os
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText

def send_email(subject, message, sender_email, sender_password, recipient_email):
    msg = MIMEMultipart()
    msg['From'] = sender_email
    msg['To'] = recipient_email
    msg['Subject'] = subject
    msg.attach(MIMEText(message, 'plain'))

    server = smtplib.SMTP('', 587)
    server.login(sender_email, sender_password)
    text = msg.as_string()
    server.sendmail(sender_email, recipient_email, text)

def main():
    subject = "test"
    message = "this is a first test"
    sender_email = os.environ['SENDER_EMAIL']

About this template

This app securely connects to GMAIL via SMPT app and sends a test email. It can be used as a basic building block to build more complicated email sending apps.

Introduction to the Gmail Email Sender App Template

Welcome to the Gmail Email Sender App Template! This template allows you to send emails through Gmail using a simple Python script. It's a great starting point for building more complex email sending applications. Before you can start sending emails, there are a few setup steps you'll need to complete. This article will guide you through the process step by step.

Getting Started with the Template

To begin using this template, click on "Start with this Template" on the Lazy platform. This will set up the template in your Lazy Builder interface, and you'll be ready to move on to the next steps.

Setting Environment Secrets

The template requires you to set up environment secrets for your sender email, sender password, and recipient email. These are not set in your operating system but within the Lazy Builder interface. Here's how to set them up:

  • Go to the Environment Secrets tab within the Lazy Builder.
  • Create a new secret named 'SENDER_EMAIL' and enter your Gmail address as the value.
  • Create another secret named 'SENDER_EMAIL_PASSWORD' and enter your Gmail password as the value. Make sure to use an app password if two-factor authentication is enabled on your Gmail account.
  • Lastly, create a secret named 'RECIPIENT_EMAIL' and enter the email address where you want to send the test email.

With these secrets set, your app will be able to authenticate with Gmail's SMTP server and send emails.

External Integrations

Before you can send emails, you need to ensure that your Gmail account is set up to allow access via SMTP. Follow these steps:

  • Log in to your Gmail account.
  • Go to the account security settings and enable 'Allow less secure apps' if you are not using two-factor authentication. If you are using two-factor authentication, you will need to generate an app-specific password.
  • Use this app-specific password as the 'SENDER_EMAIL_PASSWORD' in the Environment Secrets.

These steps are necessary to allow the Python script to send emails through your Gmail account.

Using the Test Button

Once you have set up your environment secrets and configured your Gmail account, you're ready to test the app. Click the "Test" button in the Lazy interface. This will deploy the app and launch the Lazy CLI. If the code requires any user input, you will be prompted to provide it through the Lazy CLI.

After the test run, if everything is set up correctly, the recipient email address you specified should receive the test email with the subject "test" and the message "this is a first test".


That's it! You've successfully set up the Gmail Email Sender App Template. You can now use this template as a foundation for more complex email sending applications. Remember to always keep your environment secrets secure and never share your credentials.

If you encounter any issues or have further questions, please refer to the documentation or reach out for support. Happy building!

Last published
July 20, 2024

More templates like this

MP3ify: Youtube to MP3 Converter

A web application that allows users to download YouTube videos from URLs and provides the option to convert them to MP3 format.


Discord Moderation Bot

The Discord bot monitors all messages in the server. If a message contains profanity, the bot deletes it and sends a warning to the channel. The bot also notifies the host about the deletion via a direct message. Additionally, the bot outputs a helpful error message to a channel if there is a permissions error, guiding the server admin to enable the required permission in the Discord Developer portal.


Backend Server

This skeleton is streamlined for creating backend services using FastAPI. It's an excellent choice for building microservices or APIs with minimal frontend requirements.

Fast API
Gmail Email Sender App