diff --git a/core/admin/mailu/__init__.py b/core/admin/mailu/__init__.py index 96d880a1..af45e1fa 100644 --- a/core/admin/mailu/__init__.py +++ b/core/admin/mailu/__init__.py @@ -42,7 +42,10 @@ default_config = { 'WEBMAIL': 'none', 'AUTH_RATELIMIT': '10/minute;1000/hour', 'RATELIMIT_STORAGE_URL': 'redis://redis', - 'DISABLE_STATISTICS': 'False' + 'DISABLE_STATISTICS': 'False', + 'WELCOME': 'False', + 'WELCOME_SUBJECT': 'Dummy welcome topic', + 'WELCOME_BODY': 'Dummy welcome body' } # Load configuration from the environment if available diff --git a/core/admin/mailu/ui/views/base.py b/core/admin/mailu/ui/views/base.py index 8a5fe37e..681d94e7 100644 --- a/core/admin/mailu/ui/views/base.py +++ b/core/admin/mailu/ui/views/base.py @@ -3,9 +3,7 @@ from mailu.ui import ui, forms, access import flask import flask_login -import smtplib -from email.mime import text from urllib import parse @@ -50,20 +48,13 @@ def services(): @ui.route('/announcement', methods=['GET', 'POST']) @access.global_admin def announcement(): - from_address = '{}@{}'.format( - app.config['POSTMASTER'], app.config['DOMAIN']) form = forms.AnnouncementForm() if form.validate_on_submit(): - with smtplib.SMTP('smtp', port=10025) as smtp: - for recipient in [user.email for user in models.User.query.all()]: - msg = text.MIMEText(form.announcement_body.data) - msg['Subject'] = form.announcement_subject.data - msg['From'] = from_address - msg['To'] = recipient - smtp.sendmail(from_address, [recipient], msg.as_string()) + for user in models.User.query.all(): + user.sendmail(form.announcement_subject.data, + form.announcement_body.data) # Force-empty the form form.announcement_subject.data = '' form.announcement_body.data = '' flask.flash('Your announcement was sent', 'success') - return flask.render_template('announcement.html', form=form, - from_address=from_address) + return flask.render_template('announcement.html', form=form) diff --git a/core/admin/mailu/ui/views/users.py b/core/admin/mailu/ui/views/users.py index dd787bc9..34f7be8f 100644 --- a/core/admin/mailu/ui/views/users.py +++ b/core/admin/mailu/ui/views/users.py @@ -35,6 +35,7 @@ def user_create(domain_name): user.set_password(form.pw.data) db.session.add(user) db.session.commit() + user.send_welcome() flask.flash('User %s created' % user) return flask.redirect( flask.url_for('.user_list', domain_name=domain.name)) diff --git a/docs/compose/.env b/docs/compose/.env index 9d1ca4d6..efd5e25f 100644 --- a/docs/compose/.env +++ b/docs/compose/.env @@ -81,6 +81,12 @@ RECIPIENT_DELIMITER=+ DMARC_RUA=admin DMARC_RUF=admin +# Weclome email, enable and set a topic and body if you wish to send welcome +# emails to all users. +WELCOME=false +WELCOME_SUBJECT=Welcome to your new email account +WELCOME_BODY=Welcome to your new email account, if you can read this, then it is configured properly! + ################################### # Web settings ###################################