浏览代码

make sure to use lowercase for alias email

Son NK 5 年之前
父节点
当前提交
93d972df09
共有 6 个文件被更改,包括 11 次插入8 次删除
  1. 4 4
      app/api/views/new_custom_alias.py
  2. 1 1
      app/auth/views/github.py
  3. 2 1
      app/config.py
  4. 1 1
      app/dashboard/views/custom_alias.py
  5. 2 0
      app/models.py
  6. 1 1
      email_handler.py

+ 4 - 4
app/api/views/new_custom_alias.py

@@ -47,8 +47,8 @@ def new_custom_alias():
     if not data:
     if not data:
         return jsonify(error="request body cannot be empty"), 400
         return jsonify(error="request body cannot be empty"), 400
 
 
-    alias_prefix = data.get("alias_prefix", "").strip()
-    alias_suffix = data.get("alias_suffix", "").strip()
+    alias_prefix = data.get("alias_prefix", "").strip().lower()
+    alias_suffix = data.get("alias_suffix", "").strip().lower()
     note = data.get("note")
     note = data.get("note")
     alias_prefix = convert_to_id(alias_prefix)
     alias_prefix = convert_to_id(alias_prefix)
 
 
@@ -114,8 +114,8 @@ def new_custom_alias_v2():
     if not data:
     if not data:
         return jsonify(error="request body cannot be empty"), 400
         return jsonify(error="request body cannot be empty"), 400
 
 
-    alias_prefix = data.get("alias_prefix", "").strip()
-    signed_suffix = data.get("signed_suffix", "").strip()
+    alias_prefix = data.get("alias_prefix", "").strip().lower()
+    signed_suffix = data.get("signed_suffix", "").strip().lower()
     note = data.get("note")
     note = data.get("note")
     alias_prefix = convert_to_id(alias_prefix)
     alias_prefix = convert_to_id(alias_prefix)
 
 

+ 1 - 1
app/auth/views/github.py

@@ -48,7 +48,7 @@ def github_callback():
         scope=["user:email"],
         scope=["user:email"],
         redirect_uri=_redirect_uri,
         redirect_uri=_redirect_uri,
     )
     )
-    token = github.fetch_token(
+    github.fetch_token(
         _token_url,
         _token_url,
         client_secret=GITHUB_CLIENT_SECRET,
         client_secret=GITHUB_CLIENT_SECRET,
         authorization_response=request.url,
         authorization_response=request.url,

+ 2 - 1
app/config.py

@@ -49,7 +49,7 @@ SENTRY_FRONT_END_DSN = os.environ.get("SENTRY_FRONT_END_DSN") or SENTRY_DSN
 
 
 # Email related settings
 # Email related settings
 NOT_SEND_EMAIL = "NOT_SEND_EMAIL" in os.environ
 NOT_SEND_EMAIL = "NOT_SEND_EMAIL" in os.environ
-EMAIL_DOMAIN = os.environ["EMAIL_DOMAIN"]
+EMAIL_DOMAIN = os.environ["EMAIL_DOMAIN"].lower()
 SUPPORT_EMAIL = os.environ["SUPPORT_EMAIL"]
 SUPPORT_EMAIL = os.environ["SUPPORT_EMAIL"]
 SUPPORT_NAME = os.environ.get("SUPPORT_NAME", "Son from SimpleLogin")
 SUPPORT_NAME = os.environ.get("SUPPORT_NAME", "Son from SimpleLogin")
 ADMIN_EMAIL = os.environ.get("ADMIN_EMAIL")
 ADMIN_EMAIL = os.environ.get("ADMIN_EMAIL")
@@ -82,6 +82,7 @@ else:
 
 
 # List of domains user can use to create alias
 # List of domains user can use to create alias
 ALIAS_DOMAINS = OTHER_ALIAS_DOMAINS + [EMAIL_DOMAIN]
 ALIAS_DOMAINS = OTHER_ALIAS_DOMAINS + [EMAIL_DOMAIN]
+ALIAS_DOMAINS = [d.lower().strip() for d in ALIAS_DOMAINS]
 
 
 # the alias domain used when creating the first alias for user
 # the alias domain used when creating the first alias for user
 FIRST_ALIAS_DOMAIN = os.environ.get("FIRST_ALIAS_DOMAIN") or EMAIL_DOMAIN
 FIRST_ALIAS_DOMAIN = os.environ.get("FIRST_ALIAS_DOMAIN") or EMAIL_DOMAIN

+ 1 - 1
app/dashboard/views/custom_alias.py

@@ -57,7 +57,7 @@ def custom_alias():
     mailboxes = current_user.mailboxes()
     mailboxes = current_user.mailboxes()
 
 
     if request.method == "POST":
     if request.method == "POST":
-        alias_prefix = request.form.get("prefix")
+        alias_prefix = request.form.get("prefix").strip().lower()
         signed_suffix = request.form.get("suffix")
         signed_suffix = request.form.get("suffix")
         mailbox_ids = request.form.getlist("mailboxes")
         mailbox_ids = request.form.getlist("mailboxes")
         alias_note = request.form.get("note")
         alias_note = request.form.get("note")

+ 2 - 0
app/models.py

@@ -611,6 +611,8 @@ def generate_email(
     else:
     else:
         random_email = random_words() + "@" + EMAIL_DOMAIN
         random_email = random_words() + "@" + EMAIL_DOMAIN
 
 
+    random_email = random_email.lower().strip()
+
     # check that the client does not exist yet
     # check that the client does not exist yet
     if not Alias.get_by(email=random_email) and not DeletedAlias.get_by(
     if not Alias.get_by(email=random_email) and not DeletedAlias.get_by(
         email=random_email
         email=random_email

+ 1 - 1
email_handler.py

@@ -465,7 +465,7 @@ def handle_reply(envelope, smtp: SMTP, msg: Message, rcpt_to: str) -> (bool, str
     return whether an email has been delivered and
     return whether an email has been delivered and
     the smtp status ("250 Message accepted", "550 Non-existent email address", etc)
     the smtp status ("250 Message accepted", "550 Non-existent email address", etc)
     """
     """
-    reply_email = rcpt_to.lower().strip()
+    reply_email = rcpt_to.lower().strip().lower()
 
 
     # reply_email must end with EMAIL_DOMAIN
     # reply_email must end with EMAIL_DOMAIN
     if not reply_email.endswith(EMAIL_DOMAIN):
     if not reply_email.endswith(EMAIL_DOMAIN):