diff --git a/app/dashboard/templates/dashboard/alias_log.html b/app/dashboard/templates/dashboard/alias_log.html
index 3bccaedf..61f34ec0 100644
--- a/app/dashboard/templates/dashboard/alias_log.html
+++ b/app/dashboard/templates/dashboard/alias_log.html
@@ -108,25 +108,32 @@
{% for log in logs %}
-
{{ log.when | dt }}
-
-
{{ log.website_from or log.website_email }}
+
{{ log.when | dt }}
+ {% if log.bounced %} ⚠️ {% endif %}
+
-
+
+ {% if log.bounced %}
+
{{ log.website_from or log.website_email }}
+
![]({{ url_for('static', filename='arrows/forward-arrow.svg') }})
+
{{ log.alias }}
+
![]({{ url_for('static', filename='arrows/blocked-arrow.svg') }})
+
{{ log.mailbox }}
+ {% else %}
+
{{ log.website_from or log.website_email }}
+
+
{% if log.is_reply %}
{% elif log.blocked %}
- {% elif log.bounced %}
- --- Refused (or bounced) --->
{% else %}
{% endif %}
-
- {{ log.alias }}
-
+
{{ log.alias }}
+ {% endif %}
diff --git a/app/dashboard/views/alias_log.py b/app/dashboard/views/alias_log.py
index 91465b53..64889eaa 100644
--- a/app/dashboard/views/alias_log.py
+++ b/app/dashboard/views/alias_log.py
@@ -16,6 +16,7 @@ class AliasLog:
is_reply: bool
blocked: bool
bounced: bool
+ mailbox: str
def __init__(self, **kwargs):
for k, v in kwargs.items():
@@ -62,6 +63,7 @@ def alias_log(alias_id, page_id):
def get_alias_log(gen_email: GenEmail, page_id=0):
logs: [AliasLog] = []
+ mailbox = gen_email.mailbox_email()
q = (
db.session.query(ForwardEmail, ForwardEmailLog)
@@ -81,6 +83,7 @@ def get_alias_log(gen_email: GenEmail, page_id=0):
is_reply=fel.is_reply,
blocked=fel.blocked,
bounced=fel.bounced,
+ mailbox=mailbox
)
logs.append(al)
logs = sorted(logs, key=lambda l: l.when, reverse=True)
diff --git a/app/models.py b/app/models.py
index 39426280..f6f92a3b 100644
--- a/app/models.py
+++ b/app/models.py
@@ -513,6 +513,12 @@ class GenEmail(db.Model, ModelMixin):
random_email = generate_email(scheme=scheme, in_hex=in_hex)
return GenEmail.create(user_id=user_id, email=random_email)
+ def mailbox_email(self):
+ if self.mailbox_id:
+ return self.mailbox.email
+ else:
+ return self.user.email
+
def __repr__(self):
return f"
"
diff --git a/email_handler.py b/email_handler.py
index b3ac65fe..9c633ddf 100644
--- a/email_handler.py
+++ b/email_handler.py
@@ -250,11 +250,7 @@ def handle_forward(envelope, smtp: SMTP, msg: Message, rcpt_to: str) -> str:
LOG.d("alias %s cannot be created on-the-fly, return 510", alias)
return "510 Email not exist"
- if gen_email.mailbox_id:
- mailbox_email = gen_email.mailbox.email
- else:
- mailbox_email = gen_email.user.email
-
+ mailbox_email = gen_email.mailbox_email()
forward_email = get_or_create_forward_email(msg["From"], gen_email)
forward_log = ForwardEmailLog.create(forward_id=forward_email.id)
@@ -337,10 +333,7 @@ def handle_reply(envelope, smtp: SMTP, msg: Message, rcpt_to: str) -> str:
gen_email = forward_email.gen_email
user = gen_email.user
- if gen_email.mailbox_id:
- mailbox_email = gen_email.mailbox.email
- else:
- mailbox_email = gen_email.user.email
+ mailbox_email = gen_email.mailbox_email()
# bounce email initiated by Postfix
# can happen in case emails cannot be delivered to user-email