From fbf2f61c6bd37254d77e55bca22bad9c2a1c15db Mon Sep 17 00:00:00 2001 From: NguyenND Date: Fri, 29 May 2026 10:02:21 -0400 Subject: [PATCH] 05/29 Update invitation email sender based on domain name --- app/routes/customers.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/app/routes/customers.py b/app/routes/customers.py index a868424..a27a803 100644 --- a/app/routes/customers.py +++ b/app/routes/customers.py @@ -162,7 +162,7 @@ def create(): log_action(ACTION_CREATE, 'User', user.id, user.username, f'role=customer; email={user.email}; invite_sent=True') - _send_invite_email(user, token) + _send_invite_email(user, token, base_url=request.host_url) flash( f'Customer account created for {full_name}. ' @@ -174,23 +174,23 @@ def create(): return render_template('customers/invite.html', form=form) -def _send_invite_email(user, token): +def _send_invite_email(user, token, base_url=None): """Send the account setup email to a newly created customer.""" from flask import current_app, render_template_string from flask_mail import Message from app import mail + from urllib.parse import urlparse import threading if not current_app.config.get('MAIL_SERVER'): logger.warning('INVITE EMAIL SKIPPED | no MAIL_SERVER | user=%s', user.username) return - base_url = current_app.config.get('APP_BASE_URL', '').rstrip('/') - setup_link = f'{base_url}{url_for("customers.set_password", token=token)}' - sender = current_app.config.get( - 'MAIL_DEFAULT_SENDER', - current_app.config.get('MAIL_USERNAME', 'noreply@janitorialqc.local'), - ) + effective_base = (base_url or current_app.config.get('APP_BASE_URL', '')).rstrip('/') + setup_link = f'{effective_base}{url_for("customers.set_password", token=token)}' + + host = urlparse(effective_base).netloc or 'janitorialqc.local' + sender = f'noreply@{host}' html_body = render_template_string(""" @@ -270,7 +270,7 @@ def resend_invite(customer_id): log_action(ACTION_UPDATE, 'User', customer.id, customer.username, f'invite resent by {current_user.username}') - _send_invite_email(customer, token) + _send_invite_email(customer, token, base_url=request.host_url) flash(f'Invitation email resent to {customer.email}.', 'success') return redirect(url_for('customers.manage', customer_id=customer_id))