Skip to content

Added script to sent an email using SMTP in tornado #11762

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 1 commit into from
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
63 changes: 63 additions & 0 deletions scripts/send_email_using_smtp_in_tornado.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
import asyncio
import tornado.ioloop, tornado.web

Check failure on line 2 in scripts/send_email_using_smtp_in_tornado.py

View workflow job for this annotation

GitHub Actions / ruff

Ruff (E401)

scripts/send_email_using_smtp_in_tornado.py:2:1: E401 Multiple imports on one line

Check failure on line 2 in scripts/send_email_using_smtp_in_tornado.py

View workflow job for this annotation

GitHub Actions / ruff

Ruff (E401)

scripts/send_email_using_smtp_in_tornado.py:2:1: E401 Multiple imports on one line
import smtplib

# Function for sending mail

Check failure on line 5 in scripts/send_email_using_smtp_in_tornado.py

View workflow job for this annotation

GitHub Actions / ruff

Ruff (I001)

scripts/send_email_using_smtp_in_tornado.py:1:1: I001 Import block is un-sorted or un-formatted

Check failure on line 5 in scripts/send_email_using_smtp_in_tornado.py

View workflow job for this annotation

GitHub Actions / ruff

Ruff (I001)

scripts/send_email_using_smtp_in_tornado.py:1:1: I001 Import block is un-sorted or un-formatted
def sendEmail(recipient_email, app_name):

Check failure on line 6 in scripts/send_email_using_smtp_in_tornado.py

View workflow job for this annotation

GitHub Actions / ruff

Ruff (N802)

scripts/send_email_using_smtp_in_tornado.py:6:5: N802 Function name `sendEmail` should be lowercase

Check failure on line 6 in scripts/send_email_using_smtp_in_tornado.py

View workflow job for this annotation

GitHub Actions / ruff

Ruff (W291)

scripts/send_email_using_smtp_in_tornado.py:6:42: W291 Trailing whitespace

Check failure on line 6 in scripts/send_email_using_smtp_in_tornado.py

View workflow job for this annotation

GitHub Actions / ruff

Ruff (N802)

scripts/send_email_using_smtp_in_tornado.py:6:5: N802 Function name `sendEmail` should be lowercase

Check failure on line 6 in scripts/send_email_using_smtp_in_tornado.py

View workflow job for this annotation

GitHub Actions / ruff

Ruff (W291)

scripts/send_email_using_smtp_in_tornado.py:6:42: W291 Trailing whitespace
sender_email = ""
app_password = ""
# SMTP config
smtp_server = "smtp.gmail.com"
smtp_port = 587

Check failure on line 12 in scripts/send_email_using_smtp_in_tornado.py

View workflow job for this annotation

GitHub Actions / ruff

Ruff (W293)

scripts/send_email_using_smtp_in_tornado.py:12:1: W293 Blank line contains whitespace

Check failure on line 12 in scripts/send_email_using_smtp_in_tornado.py

View workflow job for this annotation

GitHub Actions / ruff

Ruff (W293)

scripts/send_email_using_smtp_in_tornado.py:12:1: W293 Blank line contains whitespace
subject = "Android App Created: %s" % app_name

Check failure on line 13 in scripts/send_email_using_smtp_in_tornado.py

View workflow job for this annotation

GitHub Actions / ruff

Ruff (UP031)

scripts/send_email_using_smtp_in_tornado.py:13:15: UP031 Use format specifiers instead of percent format

Check failure on line 13 in scripts/send_email_using_smtp_in_tornado.py

View workflow job for this annotation

GitHub Actions / ruff

Ruff (UP031)

scripts/send_email_using_smtp_in_tornado.py:13:15: UP031 Use format specifiers instead of percent format
body = '''Your Android app %s has been successfully created.''' % app_name

Check failure on line 14 in scripts/send_email_using_smtp_in_tornado.py

View workflow job for this annotation

GitHub Actions / ruff

Ruff (UP031)

scripts/send_email_using_smtp_in_tornado.py:14:12: UP031 Use format specifiers instead of percent format

Check failure on line 14 in scripts/send_email_using_smtp_in_tornado.py

View workflow job for this annotation

GitHub Actions / ruff

Ruff (UP031)

scripts/send_email_using_smtp_in_tornado.py:14:12: UP031 Use format specifiers instead of percent format

Check failure on line 15 in scripts/send_email_using_smtp_in_tornado.py

View workflow job for this annotation

GitHub Actions / ruff

Ruff (W293)

scripts/send_email_using_smtp_in_tornado.py:15:1: W293 Blank line contains whitespace

Check failure on line 15 in scripts/send_email_using_smtp_in_tornado.py

View workflow job for this annotation

GitHub Actions / ruff

Ruff (W293)

scripts/send_email_using_smtp_in_tornado.py:15:1: W293 Blank line contains whitespace
email_message = "Subject: %s\n\n%s" % (subject, body)

Check failure on line 16 in scripts/send_email_using_smtp_in_tornado.py

View workflow job for this annotation

GitHub Actions / ruff

Ruff (UP031)

scripts/send_email_using_smtp_in_tornado.py:16:21: UP031 Use format specifiers instead of percent format

Check failure on line 16 in scripts/send_email_using_smtp_in_tornado.py

View workflow job for this annotation

GitHub Actions / ruff

Ruff (UP031)

scripts/send_email_using_smtp_in_tornado.py:16:21: UP031 Use format specifiers instead of percent format

Check failure on line 17 in scripts/send_email_using_smtp_in_tornado.py

View workflow job for this annotation

GitHub Actions / ruff

Ruff (W293)

scripts/send_email_using_smtp_in_tornado.py:17:1: W293 Blank line contains whitespace

Check failure on line 17 in scripts/send_email_using_smtp_in_tornado.py

View workflow job for this annotation

GitHub Actions / ruff

Ruff (W293)

scripts/send_email_using_smtp_in_tornado.py:17:1: W293 Blank line contains whitespace
try:
server = smtplib.SMTP(smtp_server, smtp_port)
server.starttls()
server.login(sender_email, app_password)
server.sendmail(sender_email, recipient_email, email_message)
print("Email sent successfully")
email_sent = True

except smtplib.SMTPAuthenticationError as e:
print("SMTP Authentication Error: %s" % e)
except Exception as e:
print("Error: %s", e)

# raise exception for outer try except
if not email_sent:
raise Exception("Email sending failed.")



# Async testing function
async def asyncFunc(i):
await asyncio.sleep(1)
print("I'm Running %s" % i)


# main function
async def main():
print("Code started")

# Code for sending mail
try:
recipient_email = "[email protected]"
app_name = "myApp"
tornado.ioloop.IOLoop.current().run_in_executor(None, sendEmail, recipient_email, app_name)
# You can directly call the function for async
# sendEmail(recipient_email, app_name)
except Exception as e:
print(e)

for i in range(0, 10):
await asyncFunc(i)


if __name__ == '__main__':
loop = asyncio.get_event_loop()
loop.run_until_complete(main())
Loading