test_smtp.py 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. import smtplib
  2. import os
  3. from dotenv import load_dotenv
  4. load_dotenv()
  5. # Get email settings from environment variables
  6. username = os.getenv("MAIL_USERNAME")
  7. password = os.getenv("MAIL_PASSWORD")
  8. server = os.getenv("MAIL_SERVER")
  9. port = int(os.getenv("MAIL_PORT", "587"))
  10. print(f"Testing connection to {server}:{port} with username {username}")
  11. try:
  12. # Attempt to connect
  13. smtp = smtplib.SMTP(server, port)
  14. smtp.ehlo()
  15. # Start TLS if needed
  16. if os.getenv("MAIL_STARTTLS") == "True":
  17. smtp.starttls()
  18. smtp.ehlo()
  19. # Try to login
  20. smtp.login(username, password)
  21. print("Login successful!")
  22. # Send a test email
  23. from_addr = os.getenv("MAIL_FROM")
  24. to_addr = "example@noreply.com"
  25. message = f"From: {from_addr}\nTo: {to_addr}\nSubject: SMTP Test\n\nThis is a test email to verify SMTP connection."
  26. smtp.sendmail(from_addr, to_addr, message)
  27. print("Test email sent successfully!")
  28. smtp.quit()
  29. except Exception as e:
  30. print(f"Error: {e}")