Skip to content

Instantly share code, notes, and snippets.

@probablyangg
Last active December 2, 2020 12:15
Show Gist options
  • Save probablyangg/a1b491cf628948fdce74067013afe8b2 to your computer and use it in GitHub Desktop.
Save probablyangg/a1b491cf628948fdce74067013afe8b2 to your computer and use it in GitHub Desktop.
Send email (jinja2 + python3)
from smtplib import SMTP
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from jinja2 import Environment, FileSystemLoader
import os
env = Environment(
loader=FileSystemLoader('templates'))
def get_data():
data = {
"slug": "test-2",
"grant_id": "1626",
"handle": "nglglhtr"
}
return data
def make_tweet_link(id, slug):
return "https://twitter.com/intent/tweet?text=Gitcoin%20Grants%20Round%208.%20A%20%23GR8%20way%20to%20fund%20open%20source.%20Support%20us%20here%3A%20https%3A%2F%2Fgitcoin.co%2Fgrants%2F" + id + "%2F" + slug + "%20%23Ethereum%20%40gitcoin&url="
def send_mail(bodyContent, from_email, to_email, password, subject):
message = MIMEMultipart()
message['Subject'] = subject
message['From'] = from_email
message['To'] = to_email
message.attach(MIMEText(bodyContent, "html"))
msgBody = message.as_string()
server = SMTP('smtp.gmail.com', 587)
server.starttls()
server.login(from_email, 'vfghuffrhigybkvd')
server.sendmail(from_email, to_email, msgBody)
server.quit()
def send_grant_email(f, t, p, s):
# get 1 data obj
json_data = get_data()
json_data['link'] = make_tweet_link(json_data['grant_id'], json_data['slug'])
template = env.get_template('child.html')
output = template.render(data=json_data)
send_mail(output, f, t, p, s)
return "Mail sent successfully."
print(send_grant_email(
'angelagilhotra@gmail.com',
'angela.gilhotra@gmail.com',
PASSWORD,
'[testing] gitcoin grants rd. 8'
))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment