Skip to content

Create send_email_using_smtp_in_tornado.py #11764

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 2 commits 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
65 changes: 65 additions & 0 deletions scripts/send_email_using_smtp_in_tornado.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
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
import smtplib


# Function for sending mail

Check failure on line 6 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 7 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:7:5: N802 Function name `sendEmail` should be lowercase
sender_email = ""
app_password = ""
# SMTP config
smtp_server = "smtp.gmail.com"
smtp_port = 587

subject = "Android App Created: %s" % 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:15: UP031 Use format specifiers instead of percent format
body = """Your Android app %s has been successfully created.""" % app_name

Check failure on line 15 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:15:12: UP031 Use format specifiers instead of percent format

email_message = "Subject: %s\n\n%s" % (subject, body)

Check failure on line 17 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:17:21: UP031 Use format specifiers instead of percent format

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)

Check failure on line 28 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:28:15: UP031 Use format specifiers instead of percent format
except Exception as e:

Check failure on line 29 in scripts/send_email_using_smtp_in_tornado.py

View workflow job for this annotation

GitHub Actions / ruff

Ruff (BLE001)

scripts/send_email_using_smtp_in_tornado.py:29:12: BLE001 Do not catch blind exception: `Exception`
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):

Check failure on line 38 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:38:11: N802 Function name `asyncFunc` should be lowercase
await asyncio.sleep(1)
print("I'm Running %s" % i)

Check failure on line 40 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:40:11: UP031 Use format specifiers instead of percent format


# 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