Skip to content

Sending e-mail on register should handle the case where no e-mail server was configured #83

Description

@italovalcy

Hi,

Currently if you try to run the dashboard without configuring a e-mail server, eventually you may get errors like this:

2025-03-25 11:21:18,577 WARNING [apps] [routes.py:77] Failed login ipaddr=189.71.126.43 login=admin auth_provider=local
2025-03-25 11:22:49,313 ERROR [apps] [app.py:875] Exception on /register [POST]
Traceback (most recent call last):
  File "/home/italo/dashboard/venv/lib/python3.11/site-packages/flask/app.py", line 1511, in wsgi_app
    response = self.full_dispatch_request()
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/italo/dashboard/venv/lib/python3.11/site-packages/flask/app.py", line 919, in full_dispatch_request
    rv = self.handle_user_exception(e)
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/italo/dashboard/venv/lib/python3.11/site-packages/flask/app.py", line 917, in full_dispatch_request
    rv = self.dispatch_request()
         ^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/italo/dashboard/venv/lib/python3.11/site-packages/flask/app.py", line 902, in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)  # type: ignore[no-any-return]
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/italo/dashboard/apps/authentication/routes.py", line 174, in register
    mail.send(msg)
  File "/home/italo/dashboard/venv/lib/python3.11/site-packages/flask_mail/__init__.py", line 539, in send
    with self.connect() as connection:
  File "/home/italo/dashboard/venv/lib/python3.11/site-packages/flask_mail/__init__.py", line 127, in __enter__
    self.host = self.configure_host()
                ^^^^^^^^^^^^^^^^^^^^^
  File "/home/italo/dashboard/venv/lib/python3.11/site-packages/flask_mail/__init__.py", line 149, in configure_host
    host.starttls()
  File "/usr/lib/python3.11/smtplib.py", line 769, in starttls
    self.ehlo_or_helo_if_needed()
  File "/usr/lib/python3.11/smtplib.py", line 611, in ehlo_or_helo_if_needed
    if not (200 <= self.ehlo()[0] <= 299):
                   ^^^^^^^^^^^
  File "/usr/lib/python3.11/smtplib.py", line 451, in ehlo
    self.putcmd(self.ehlo_msg, name or self.local_hostname)
  File "/usr/lib/python3.11/smtplib.py", line 378, in putcmd
    self.send(f'{s}{CRLF}')
  File "/usr/lib/python3.11/smtplib.py", line 365, in send
    raise SMTPServerDisconnected('please run connect() first')
smtplib.SMTPServerDisconnected: please run connect() first

We should have means to not fail when the e-mail server was not configured.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions