Skip to content

Instantly share code, notes, and snippets.

@IgnacioHeredia
Created January 12, 2026 19:22
Show Gist options
  • Select an option

  • Save IgnacioHeredia/3ca44fd807271852977cd30a293794a2 to your computer and use it in GitHub Desktop.

Select an option

Save IgnacioHeredia/3ca44fd807271852977cd30a293794a2 to your computer and use it in GitHub Desktop.
Send emails with Gmail (2FA activated)
import argparse
from email.message import EmailMessage
import smtplib
def main():
parser = argparse.ArgumentParser()
parser.add_argument("--from_user", type=str)
parser.add_argument("--from_pwd", type=str) # token (needs 2FA)
parser.add_argument("--to_user", type=str)
parser.add_argument("--subject", type=str, default="")
parser.add_argument("--body", type=str, default="")
args = parser.parse_args()
msg = EmailMessage()
msg["From"] = args.from_user
msg["To"] = args.to_user
msg["Subject"] = args.subject
msg["X-Priority"] = "1" # highest priority
msg.add_alternative(
f"""\
<!DOCTYPE html>
<html>
<body>
{args.body}
</body>
</html>
""",
subtype="html",
)
with smtplib.SMTP_SSL("smtp.gmail.com", 465) as smtp:
smtp.login(args.from_user, args.from_pwd)
smtp.send_message(msg)
print("✉️ Sending notification email")
if __name__ == "__main__":
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment