Gmail Organization Invitation API

 
import os
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from fastapi import FastAPI
from pydantic import BaseModel
import uvicorn

app = FastAPI()

class Invitation(BaseModel):
    recipient_email: str
    inviter_email: str
    organization_name: str
    invitation_link: str

@app.post("/send_invitation")
def send_invitation(invitation: Invitation):
    # TODO: Replace with your Gmail account details
    gmail_user = os.environ['GMAIL_USER']
    gmail_password = os.environ['GMAIL_PASSWORD']

    msg = MIMEMultipart('alternative')

About this template

This app is an API that sends an invitation email from a Gmail account with 2FA enabled. It accepts various inputs to generate a personalized invitation email based on the name of the email of the person being invited, the email who invited the person and the name of the organisation and an invitation link.

Introduction to Gmail Organization Invitation API Template

Welcome to the step-by-step guide on how to use the Gmail Organization Invitation API Template. This template allows you to send personalized invitation emails to potential members of your organization. The email is sent through a Gmail account with 2FA enabled, and the API accepts various inputs to generate the invitation. Let's get started with how to set up and use this template effectively.

Start with this Template

To begin using this template, click on the "Start with this Template" button. This will initialize the template within the Lazy platform, allowing you to customize it according to your needs.

Environment Secrets

Before you can send out invitations, you need to set up your Gmail account details as environment secrets. This is crucial for the API to access your Gmail account and send emails. Here's how to set them up:

  • Locate the Environment Secrets tab within the Lazy Builder interface.
  • Create two new secrets: one named 'GMAIL_USER' and another named 'GMAIL_PASSWORD'.
  • For 'GMAIL_USER', enter your Gmail email address.
  • For 'GMAIL_PASSWORD', enter the password for your Gmail account. If you have 2FA enabled, you will need to generate an app-specific password to use here.

Remember, these credentials are sensitive, and Lazy will keep them secure as environment secrets.

Using the Test Button

Once you have set up your environment secrets, you can test the functionality of your app. Click the "Test" button to begin the deployment of 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 testing, if your app uses an API, Lazy will provide you with a dedicated server link to use the API. Since this template uses FastAPI, you will also receive a link to the API documentation, which can be very helpful for understanding the available endpoints and how to interact with them.

Sample API Request and Response

To send an invitation using the API, you will make a POST request to the "/send_invitation" endpoint with the required information. Here's a sample request:

POST /send_invitation
Content-Type: application/json

{ "recipient_email": "john.doe@example.com", "inviter_email": "jane.smith@yourcompany.com", "organization_name": "Your Organization", "invitation_link": "https://www.yourorganization.com/invite" }

Upon a successful request, you will receive a confirmation in the Lazy CLI that the email has been sent. If there is an issue, you will receive an error message detailing what went wrong.

By following these steps, you can easily set up and use the Gmail Organization Invitation API Template to send out personalized invitations to join your organization. Remember to handle your Gmail credentials securely and enjoy the convenience of automating your invitation process.

Category
Technology
Last published
July 27, 2024

More templates like this

SecureUserAuthenticator

Develop a secure User Authentication system for users to register, log in, and manage their profiles, laying the foundation for user-specific data management and permissions in the CMS.

Laravel
Python
Flask
Javascript

Simple Multiplayer Telegram game

This app is a simple frontend for a game where users can upvote and downvote the most popular word in their country, learn about the flags of other countries, and view what other people voted for on a leaderboard.

Telegram
Python
Javascript

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.

Python
Flask
Home
/
Gmail Organization Invitation API