diff --git a/common/utils.py b/common/utils.py
index f5293015c3ca7c8182515e2c5dea967199606d00..4a778d1002428a3cd1c2da6823a7c137df54f39c 100644
--- a/common/utils.py
+++ b/common/utils.py
@@ -7,12 +7,13 @@ class BaseMailUtil(object):
     mail_sender_title = ''
 
     @classmethod
-    def load(cls, _dict):
+    def load(cls, _dict, request=None):
         cls._context = _dict
+        cls._context['request'] = request
         for var_name in _dict:
             setattr(cls, var_name, _dict[var_name])
 
-    def _send_mail(cls, template_name, recipients, subject):
+    def _send_mail(cls, template_name, recipients, subject, extra_bcc=None):
         """
         Call this method from a classmethod to send emails.
         The template will have context variables defined appended from the `load` method.
@@ -29,8 +30,15 @@ class BaseMailUtil(object):
         html_template = loader.get_template('email/%s_html.html' % template_name)
         message = template.render(Context(cls._context))
         html_message = html_template.render(Context(cls._context))
+        bcc_list = [cls.mail_sender]
+        if extra_bcc:
+            bcc_list += extra_bcc
         email = EmailMultiAlternatives(
-            'SciPost: ' + subject, message, '%s <%s>' % (cls.mail_sender_title, cls.mail_sender),
-            recipients, bcc=[cls.mail_sender], reply_to=[cls.mail_sender])
+            'SciPost: ' + subject,  # message,
+            message,
+            '%s <%s>' % (cls.mail_sender_title, cls.mail_sender),
+            recipients,
+            bcc=bcc_list,
+            reply_to=[cls.mail_sender])
         email.attach_alternative(html_message, 'text/html')
         email.send(fail_silently=False)
diff --git a/scipost/management/commands/export_contributors.py b/scipost/management/commands/export_contributors.py
index 889698b316759dc4055a850194ecece0878f4de4..153ace0457f0ce289e232cecbe259e0a62933075 100644
--- a/scipost/management/commands/export_contributors.py
+++ b/scipost/management/commands/export_contributors.py
@@ -32,7 +32,9 @@ class Command(BaseCommand):
         fieldnames = ['first_name', 'last_name', 'email_address']
 
         # Query
-        queryset = Contributor.objects.filter(user__is_active=True, status=CONTRIBUTOR_NORMAL)
+        queryset = Contributor.objects.filter(user__is_active=True,
+                                              status=CONTRIBUTOR_NORMAL,
+                                              accepts_SciPost_emails=True)
         if kwargs['group']:
             queryset = queryset.filter(user__groups__name=kwargs['group'])
 
diff --git a/scipost/views.py b/scipost/views.py
index 0412865861c35f32090c89fa766322d850f72107..d3ad00c66f0084805cc474d2741a24ef3f580771 100644
--- a/scipost/views.py
+++ b/scipost/views.py
@@ -206,7 +206,7 @@ def register(request):
     form = RegistrationForm(request.POST or None)
     if form.is_valid():
         contributor = form.create_and_save_contributor()
-        Utils.load({'contributor': contributor})
+        Utils.load({'contributor': contributor}, request)
         Utils.send_registration_email()
 
         # Disable invitations related to the new Contributor
@@ -281,7 +281,7 @@ def request_new_activation_link(request, contributor_id, key):
     if request.GET.get('confirm', False):
         # Generate a new email activation key and link
         contributor.generate_key()
-        Utils.load({'contributor': contributor})
+        Utils.load({'contributor': contributor}, request)
         Utils.send_new_activation_link_email()
 
         context = {
diff --git a/submissions/templates/submissions/_form_submission_cycle_choice.html b/submissions/templates/submissions/_form_submission_cycle_choice.html
index 8b1a2d5b998df1dc54a8da16ba3bde1d38ffe6e1..3cfbd7176a6859a1a4a429a51acb45723fd894e9 100644
--- a/submissions/templates/submissions/_form_submission_cycle_choice.html
+++ b/submissions/templates/submissions/_form_submission_cycle_choice.html
@@ -1,77 +1,79 @@
+{% load bootstrap %}
 <form method="post" action="{% url 'submissions:cycle_confirmation' submission.arxiv_identifier_w_vn_nr %}">
     {% csrf_token %}
-    <h3 class="mb-2">This submission is a resubmission, please choose which submission cycle to proceed with</h3>
-    <div class="card-deck mb-5" id="id_submission_cycle">
-        {% for choice in form.refereeing_cycle %}
-            <div class="card radio-option" for="{{choice.id_for_label}}" data-reinvite="{% if choice.choice_value == 'direct_rec' %}0{% else %}1{% endif %}">
-                <div class="card-block text-center">
-                    <span class="hidden-xs-up">{{choice.tag}}</span>
-
-                        <h3 class="card-title">{{choice.choice_label}}</h3>
-                        <p class="card-text text-muted">
-                            {% if choice.choice_value == 'short' %}
-                                Run a speedy refereeing round: two weeks, with option of reinviting previous referees
-                            {% elif choice.choice_value == 'direct_rec' %}
-                                Immediately write an editorial recommendation.
-                            {% else %}
-                                Run a new full refereeing round: four weeks as usual, can invite previous referees and/or new ones.
-                            {% endif %}
-                        </p>
-                        <label for="{{choice.id_for_label}}" class="text-blue">Choose this cycle</label>
-
-                </div>
-            </div>
-        {% endfor %}
+    <div class="row">
+        <div class="col-12">
+            <h3>This submission is a resubmission, please choose which submission cycle to proceed with</h3>
+        </div>
     </div>
-    <div class="card-deck" id="id_referees_reinvite_block" style="display: none;">
-        <div class="card">
-            <div class="card-block">
-                <h3 class="card-title">The following referees were also invited in the last submission</h3>
-                <h4 class="card-subtitle text-muted pt-0">Please choose who you want to reinvite</h4>
-                <div class="form-group row" id="id_referees_reinvite">
-                    <label class="col-form-label col-md-2" for="id_referees_reinvite">Reinvite referees</label>
-                    <div class="col-md-10 multiple-checkbox">
-                        <ul class="mb-0 list-group list-group-flush">
-                            {% for referee in form.referees_reinvite.field.queryset %}
-                                <li class="list-group-item py-1">
-                                    <label for="{{form.referees_reinvite.name}}_{{forloop.counter0}}" class="mb-0">
-                                        <input checked="checked" id="{{form.referees_reinvite.name}}_{{forloop.counter0}}" name="{{form.referees_reinvite.name}}" type="checkbox" value="{{referee.id}}">
-                                        <div class="d-inline-block" style="vertical-align: top;">
-                                            {{referee.referee_str}}
-                                            <br>
-                                            <span class="text-muted">Originally invited on {{referee.date_invited}}</span>
-                                        </div>
-                                     </label>
-                                 </li>
-                            {% endfor %}
-                        </ul>
-                    </div>
+
+    <!-- Refereeing cycle -->
+    <div class="form-group row">
+        <label class="col-form-label col-md-2 ">Refereeing cycle</label>
+        <div class="col-md-10">
+            {% for field in form.refereeing_cycle %}
+                <div class="radio" data-reinvite="{% if field.choice_value == 'direct_rec' %}0{% else %}1{% endif %}">
+                    <label for="{{field.id_for_label}}" class="mb-0">
+                        {{field.tag}}
+                        {{field.choice_label}}
+                    </label>
                 </div>
+                <p class="help-block text-muted">
+                    {{ field.help_text|safe }}
+                    {% if field.choice_value == 'short' %}
+                        Run a speedy refereeing round: two weeks, with option of reinviting previous referees
+                    {% elif field.choice_value == 'direct_rec' %}
+                        Immediately write an editorial recommendation.
+                    {% else %}
+                        Run a new full refereeing round: four weeks as usual, can invite previous referees and/or new ones.
+                    {% endif %}
+                </p>
+
+                {% for error in field.errors %}
+                    <span class="help-block {{ form.error_css_class }}">{{ error }}</span>
+                {% endfor %}
+            {% endfor %}
+        </div>
+    </div><!-- end refereeing cycle -->
+
+    <!-- Reinvite referees -->
+    <div id="id_referees_reinvite_block" style="display: none;">
+        <div class="row">
+            <div class="col-12">
+                <h3>The following referees were also invited in the last submission</h3>
+                <h4 class="text-muted">Please choose who you want to reinvite (an invitation will be automatically emailed to the referee)</h4>
             </div>
         </div>
+        <div class="form-group row">
+            <label class="col-form-label col-md-2 ">Reinvite referees</label>
+            <div class="col-md-10">
+                <ul class="list-group list-group-flush">
+                    {% for referee in form.referees_reinvite.field.queryset %}
+                        <li class="list-group-item py-1">
+                            <label for="{{form.referees_reinvite.name}}_{{forloop.counter0}}" class="mb-0">
+                                <input checked="checked" id="{{form.referees_reinvite.name}}_{{forloop.counter0}}" name="{{form.referees_reinvite.name}}" type="checkbox" value="{{referee.id}}">
+                                <div class="d-inline-block" style="vertical-align: top;">
+                                    {{referee.referee_str}}
+                                    <br>
+                                    <span class="text-muted">Originally invited on {{referee.date_invited}}</span>
+                                </div>
+                             </label>
+                         </li>
+                    {% endfor %}
+                </ul>
+            </div>
+        </div><!-- end reinvite referees -->
     </div>
     <input type="submit" class="btn btn-primary" value="Confirm choice">
 </form>
 
 <script>
     $(function(){
-        $('#id_submission_cycle .radio-option').on('click change', function(){
-            var radio_clicked = $(this).find('input[type="radio"]');
-
-            // Uncheck all cycles except the one clicked and
-            $('#id_submission_cycle .radio-option input[type="radio"]')
-            .prop('checked', false)
-            .filter(radio_clicked)
-            .prop('checked', true);
-
-            // Toggle classes of cards
-            $('#id_submission_cycle .radio-option')
-            .removeClass('checked')
-            .filter(this)
-            .addClass('checked');
+        $('[name="{{form.refereeing_cycle.name}}"]').on('click change', function(){
+            var reinvite = $('[name="{{form.refereeing_cycle.name}}"]:checked').parents('.radio').attr('data-reinvite') == 1;
 
             // Show/hide invitation block
-            if($(this).attr('data-reinvite') > 0) {
+            if(reinvite > 0) {
                 $('#id_referees_reinvite_block').show();
             } else {
                 $('#id_referees_reinvite_block').hide();
diff --git a/submissions/utils.py b/submissions/utils.py
index 2534333d98fcace08ddd93619406c5c5414eea26..fb2039cc6df596f19c5dbce7b37985c794f9ee11 100644
--- a/submissions/utils.py
+++ b/submissions/utils.py
@@ -94,12 +94,13 @@ class BaseSubmissionCycle:
 
         return True
 
-    def reinvite_referees(self, referees):
+    def reinvite_referees(self, referees, request=None):
         """
         Reinvite referees if allowed. This method does not check if it really is
-        an reinvitation or just a new invitation.
+        a reinvitation or just a new invitation.
         """
         if self.may_reinvite_referees:
+            SubmissionUtils.load({'submission': self.submission})
             for referee in referees:
                 invitation = referee
                 invitation.pk = None  # Duplicate, do not remove the old invitation
@@ -107,6 +108,8 @@ class BaseSubmissionCycle:
                 invitation.reset_content()
                 invitation.date_invited = timezone.now()
                 invitation.save()
+                SubmissionUtils.load({'invitation': invitation}, request)
+                SubmissionUtils.reinvite_referees_email()
 
     def update_deadline(self, period=None):
         delta_d = period or self.default_days
@@ -272,6 +275,21 @@ class SubmissionUtils(BaseMailUtil):
             atd.deprecated = True
             atd.save()
 
+    @classmethod
+    def reinvite_referees_email(cls):
+        """
+        Email to be sent to referees when they are being reinvited by the EIC.
+
+        Requires context to contain:
+        - `invitation`
+        """
+        extra_bcc_list = [cls._context['invitation'].submission.editor_in_charge.user.email]
+        cls._send_mail(cls, 'submission_cycle_reinvite_referee',
+                       [cls._context['invitation'].email_address],
+                       'Invitation on resubmission',
+                       extra_bcc=extra_bcc_list)
+
+
     @classmethod
     def send_authors_submission_ack_email(cls):
         """ Requires loading 'submission' attribute. """
@@ -490,7 +508,7 @@ class SubmissionUtils(BaseMailUtil):
                       'Submission Page; you will be informed by email of any such Report or '
                       'Comment being delivered). In order to facilitate the work of the '
                       'Editorial College, we recommend limiting these replies to short '
-                      'to-the-point clarifications of any issue raised on your manuscript.\n\n '
+                      'to-the-point clarifications of any issue raised on your manuscript.\n\n'
                       'Please wait for the Editor-in-charge\'s Editorial Recommendation '
                       'before any resubmission of your manuscript.'
                       '\n\nTo facilitate metadata handling, we recommend that all authors '
diff --git a/submissions/views.py b/submissions/views.py
index 9c3bf34d067a6b8e2e897014505a4f45d9fba423..99eb79e517db0ff148d5620b5000dd9b9abb1151 100644
--- a/submissions/views.py
+++ b/submissions/views.py
@@ -27,7 +27,6 @@ from .forms import SubmissionIdentifierForm, SubmissionForm, SubmissionSearchFor
                    SubmissionCycleChoiceForm
 from .utils import SubmissionUtils
 
-from comments.models import Comment
 from scipost.forms import ModifyPersonalMessageForm, RemarkForm
 from scipost.models import Contributor, Remark, RegistrationInvitation
 
@@ -170,7 +169,7 @@ class SubmissionCreateView(PermissionRequiredMixin, CreateView):
             assignment.save()
 
             # Send emails
-            SubmissionUtils.load({'submission': submission})
+            SubmissionUtils.load({'submission': submission}, self.request)
             SubmissionUtils.send_authors_resubmission_ack_email()
             SubmissionUtils.send_EIC_reappointment_email()
         else:
@@ -333,8 +332,8 @@ def pool(request):
                                          .filter(submission__status__in=['put_to_EC_voting']))
     recommendations_to_prepare_for_voting = (EICRecommendation.objects
                                              .get_for_user_in_pool(request.user)
-                                             .filter(submission__status__in=
-                                                     ['voting_in_preparation']))
+                                             .filter(
+                                                submission__status__in=['voting_in_preparation']))
     contributor = Contributor.objects.get(user=request.user)
     assignments_to_consider = EditorialAssignment.objects.filter(
         to=contributor, accepted=None, deprecated=False)
@@ -649,7 +648,7 @@ def cycle_form_submit(request, arxiv_identifier_w_vn_nr):
         submission = form.save()
         submission.cycle.update_status()
         submission.cycle.update_deadline()
-        submission.cycle.reinvite_referees(form.cleaned_data['referees_reinvite'])
+        submission.cycle.reinvite_referees(form.cleaned_data['referees_reinvite'], request)
         messages.success(request, ('<h3>Your choice has been confirmed</h3>'
                                    'The new cycle will be <em>%s</em>'
                                    % submission.get_refereeing_cycle_display()))
@@ -835,7 +834,7 @@ def accept_or_decline_ref_invitation_ack(request, invitation_id):
             invitation.accepted = False
             invitation.refusal_reason = form.cleaned_data['refusal_reason']
         invitation.save()
-        SubmissionUtils.load({'invitation': invitation})
+        SubmissionUtils.load({'invitation': invitation}, request)
         SubmissionUtils.email_referee_response_to_EIC()
         SubmissionUtils.email_referee_in_response_to_decision()
 
@@ -1031,6 +1030,7 @@ def eic_recommendation(request, arxiv_identifier_w_vn_nr):
                                        submission=submission, to=request.user.contributor)
         assignment.completed = True
         assignment.save()
+        messages.success(request, 'Your Editorial Recommendation has been succesfully submitted')
         return redirect(reverse('submissions:editorial_page',
                                 kwargs={'arxiv_identifier_w_vn_nr': arxiv_identifier_w_vn_nr}))
 
@@ -1095,7 +1095,7 @@ def submit_report(request, arxiv_identifier_w_vn_nr):
         # Update user stats
         author.nr_reports = Report.objects.filter(author=author).count()
         author.save()
-        SubmissionUtils.load({'report': newreport})
+        SubmissionUtils.load({'report': newreport}, request)
         SubmissionUtils.email_EIC_report_delivered()
 
         # Why is this session update?
diff --git a/templates/email/_footer.html b/templates/email/_footer.html
index 41b50b80c1c2e210cb64a45f92fe1ec0658e8826..8dbca35955bcdbb9777d99b3f11f28b6b52ea7ed 100644
--- a/templates/email/_footer.html
+++ b/templates/email/_footer.html
@@ -4,18 +4,18 @@
 <br/>
 <div style="background-color: #f0f0f0; color: #002B49; align-items: center;">
     <div style="display: inline-block; padding: 8px;">
-        <a href="https://scipost.org/journals/">Journals</a>
+        <a href="{{request.get_host}}{% url 'journals:journals' %}">Journals</a>
     </div>
     <div style="display: inline-block; padding: 8px;">'
-        <a href="https://scipost.org/submissions/">Submissions</a>
+        <a href="{{request.get_host}}{% url 'submissions:submissions' %}">Submissions</a>
     </div>
     <div style="display: inline-block; padding: 8px;">
-        <a href="https://scipost.org/commentaries/">Commentaries</a>
+        <a href="{{request.get_host}}{% url 'commentaries:commentaries' %}">Commentaries</a>
     </div>
     <div style="display: inline-block; padding: 8px;">
-        <a href="https://scipost.org/theses/">Theses</a>
+        <a href="{{request.get_host}}{% url 'theses:theses' %}">Theses</a>
     </div>
     <div style="display: inline-block; padding: 8px;">
-        <a href="https://scipost.org/login/">Login</a>
+        <a href="{{request.get_host}}{% url 'scipost:login' %}">Login</a>
     </div>
 </div>
diff --git a/templates/email/new_activation_link.html b/templates/email/new_activation_link.html
index 3d8def3613888ad4377396c3c11972a053dd946f..755aaddd9f0aae366ba9884b84bbc11624b4746f 100644
--- a/templates/email/new_activation_link.html
+++ b/templates/email/new_activation_link.html
@@ -2,7 +2,7 @@ Dear {{contributor.get_title_display}} {{contributor.user.last_name}},\n\n
 
 Your request for a new email activation link for registration to the SciPost publication portal has been received. You now need to visit this link within the next 48 hours: \n\n
 
-{% url 'scipost:activation' contributor.id contributor.activation_key %}
+{{request.get_host}}{% url 'scipost:activation' contributor.id contributor.activation_key %}
 \n\n
 
 Your registration will thereafter be vetted. Many thanks for your interest.\n
diff --git a/templates/email/new_activation_link_html.html b/templates/email/new_activation_link_html.html
index 8ab56b93af64371f8dda5906ef741bedffa90ddb..48a6e019acecf05d6122fb79e8ddf6ce99525fae 100644
--- a/templates/email/new_activation_link_html.html
+++ b/templates/email/new_activation_link_html.html
@@ -4,7 +4,7 @@
     Your request for a new email activation link for registration to the SciPost publication portal has been received. You now need to visit this link within the next 48 hours:
 </p>
 <p>
-    <a href="{% url 'scipost:activation' contributor.id contributor.activation_key %}">Activate your account</a>
+    <a href="{{request.get_host}}{% url 'scipost:activation' contributor.id contributor.activation_key %}">Activate your account</a>
 </p>
 
 <p>
diff --git a/templates/email/referee_response_to_EIC.html b/templates/email/referee_response_to_EIC.html
index e4c185bf57304fb41a0b26488e1a991a4982e3f9..c3e7b18856e90284714941a74d3a529b134c5c5b 100644
--- a/templates/email/referee_response_to_EIC.html
+++ b/templates/email/referee_response_to_EIC.html
@@ -5,7 +5,7 @@ Referee {{invitation.referee.get_title_display}} {{invitation.referee.user.last_
 {{invitation.submission.title}} by {{invitation.submission.author_list}}\n\n
 
 {% if not invitation.accepted %}
-Please invite another referee from the Submission\'s editorial page at {% url 'submissions:editorial_page' invitation.submission.arxiv_identifier_w_vn_nr %}.\n\n
+Please invite another referee from the Submission\'s editorial page at {{request.get_host}}{% url 'submissions:editorial_page' invitation.submission.arxiv_identifier_w_vn_nr %}.\n\n
 {% endif %}
 
 Many thanks for your collaboration,\n
diff --git a/templates/email/referee_response_to_EIC_html.html b/templates/email/referee_response_to_EIC_html.html
index 2c50f00c02770229387d6797769ecad7de11b1a2..8a8ea2958a74a03a1419863f1d3c56733c7a6a8b 100644
--- a/templates/email/referee_response_to_EIC_html.html
+++ b/templates/email/referee_response_to_EIC_html.html
@@ -9,7 +9,7 @@
 
 {% if not invitation.accepted %}
     <p>
-        Please invite another referee from the Submission's <a href="{% url 'submissions:editorial_page' invitation.submission.arxiv_identifier_w_vn_nr %}">editorial page</a>.
+        Please invite another referee from the Submission's <a href="{{request.get_host}}{% url 'submissions:editorial_page' invitation.submission.arxiv_identifier_w_vn_nr %}">editorial page</a>.
     </p>
 {% endif %}
 
diff --git a/templates/email/registration_request_received.html b/templates/email/registration_request_received.html
index d18818fbfc929832f1e7815bf3771bb675e3a313..47d9124523bc8588a5b54536a7661618ebef5029 100644
--- a/templates/email/registration_request_received.html
+++ b/templates/email/registration_request_received.html
@@ -2,7 +2,7 @@ Dear {{contributor.get_title_display}} {{contributor.user.last_name}},\n\n
 
 Your request for registration to the SciPost publication portal has been received. You now need to validate your email by visiting this link within the next 48 hours: \n\n
 
-{% url 'scipost:activation' contributor.id contributor.activation_key %}
+{{request.get_host}}{% url 'scipost:activation' contributor.id contributor.activation_key %}
 \n\n
 
 Your registration will thereafter be vetted. Many thanks for your interest.\n
diff --git a/templates/email/registration_request_received_html.html b/templates/email/registration_request_received_html.html
index ca016a1a10a7d626ffa8646284a4e9e9c229fd65..c9eb3ff312a5e7e7f9525017f935cb9c4845ed51 100644
--- a/templates/email/registration_request_received_html.html
+++ b/templates/email/registration_request_received_html.html
@@ -4,7 +4,7 @@
     Your request for registration to the SciPost publication portal has been received. You now need to validate your email by visiting this link within the next 48 hours:
 </p>
 <p>
-    <a href="{% url 'scipost:activation' contributor.id contributor.activation_key %}">Activate your account</a>
+    <a href="{{request.get_host}}{% url 'scipost:activation' contributor.id contributor.activation_key %}">Activate your account</a>
 </p>
 
 <p>
diff --git a/templates/email/report_delivered_eic.html b/templates/email/report_delivered_eic.html
index f2051e9afcc7efb1a9995a5fa4daf6352d83aa59..4d326dd5d8105f4b24be2dca147eac53a36b1b5a 100644
--- a/templates/email/report_delivered_eic.html
+++ b/templates/email/report_delivered_eic.html
@@ -3,7 +3,8 @@ Dear {{report.submission.editor_in_charge.get_title_display}} {{report.submissio
 Referee {{report.author.get_title_display}} {{report.author.user.last_name}} has delivered a Report for Submission "{{report.submission.title}} by {{report.submission.author_list}}".
 \n\n
 
-Please vet this Report via your <a href="{% url 'scipost:personal_page' %}">personal page</a> under the Editorial Actions tab.
+Please vet this Report via your personal page under the Editorial Actions tab.\n
+{{request.get_host}}{% url 'scipost:personal_page' %}
 \n\n\n
 
 Many thanks in advance for your collaboration,\n
diff --git a/templates/email/report_delivered_eic_html.html b/templates/email/report_delivered_eic_html.html
index d9a2c2785483f90f54ed88d5ea052a3ef0534936..0a94697c09c2a8c7d68da68728a0b22b3b2111d2 100644
--- a/templates/email/report_delivered_eic_html.html
+++ b/templates/email/report_delivered_eic_html.html
@@ -4,7 +4,7 @@
     Referee {{report.author.get_title_display}} {{report.author.user.last_name}} has delivered a Report for Submission "<span style="color: grey;">{{report.submission.title}} by {{report.submission.author_list}}</span>".
 </p>
 <p>
-    Please vet this Report via your <a href="{% url 'scipost:personal_page' %}">personal page</a> under the Editorial Actions tab.
+    Please vet this Report via your <a href="{{request.get_host}}{% url 'scipost:personal_page' %}">personal page</a> under the Editorial Actions tab.
 </p>
 <p>
     Many thanks in advance for your collaboration,
diff --git a/templates/email/submission_cycle_reinvite_referee.html b/templates/email/submission_cycle_reinvite_referee.html
new file mode 100644
index 0000000000000000000000000000000000000000..3ae8ab59c207d451b19c0b3ad4e0da54de4ebd63
--- /dev/null
+++ b/templates/email/submission_cycle_reinvite_referee.html
@@ -0,0 +1,15 @@
+Dear {{invitation.get_title_display}} {{invitation.last_name}},\n\n\n
+
+The authors of submission\n\n
+
+{{invitation.submission.title}} by {{invitation.submission.author_list}} \n\n
+
+have resubmitted their manuscript to SciPost. On behalf of the Editor-in-charge {{invitation.submission.editor_in_charge.get_title_display}} {{invitation.submission.editor_in_charge.last_name}}, we would like to invite you to quickly review this new version.\n
+Please accept or decline the invitation (login required) as soon as possible (ideally within the next 2 days).\n\n
+
+If you accept, your report can be submitted by simply clicking on the "Contribute a Report" link on the Submission's Page before the reporting deadline (currently set at {{invitation.submission.reporting_deadline|date:'N j, Y'}}; your report will be automatically recognized as an invited report).\n\n
+
+You might want to make sure you are familiar with our refereeing code of conduct and with the refereeing procedure.\n\n
+
+We would be extremely grateful for your contribution, and thank you in advance for your consideration.\n
+The SciPost Team.
diff --git a/templates/email/submission_cycle_reinvite_referee_html.html b/templates/email/submission_cycle_reinvite_referee_html.html
new file mode 100644
index 0000000000000000000000000000000000000000..ec0eef3e764fb7e23b78723b275554efa664370b
--- /dev/null
+++ b/templates/email/submission_cycle_reinvite_referee_html.html
@@ -0,0 +1,28 @@
+<h3>Dear {{invitation.get_title_display}} {{invitation.last_name}},</h3>
+
+<p>
+    The authors of submission
+</p>
+
+<p>
+    {{invitation.submission.title}}
+    <br>
+    by {{invitation.submission.author_list}}
+    <br>
+    (<a href="{{request.get_host}}{{invitation.submission.get_absolute_url}}">see on SciPost.org</a>)
+<p>
+    have resubmitted their manuscript to SciPost. On behalf of the Editor-in-charge {{invitation.submission.editor_in_charge.get_title_display}} {{invitation.submission.editor_in_charge.last_name}}, we would like to invite you to quickly review this new version.
+    Please accept or decline the invitation (login required) as soon as possible (ideally within the next 2 days).
+</p>
+<p>
+    If you accept, your report can be submitted by simply clicking on the "Contribute a Report" link on the Submission's Page before the reporting deadline (currently set at {{invitation.submission.reporting_deadline|date:'N j, Y'}}; your report will be automatically recognized as an invited report).
+</p>
+<p>
+    You might want to make sure you are familiar with our refereeing code of conduct and with the refereeing procedure.
+</p>
+<p>
+    We would be extremely grateful for your contribution, and thank you in advance for your consideration.<br>
+    The SciPost Team.
+</p>
+
+{% include 'email/_footer.html' %}
diff --git a/templates/email/submission_eic_reappointment.html b/templates/email/submission_eic_reappointment.html
index 24cd530cb1236644316298e56fde0dd9e038ea8f..f5429e97b1fd9f0b19d1e566875bda11ae5b9540 100644
--- a/templates/email/submission_eic_reappointment.html
+++ b/templates/email/submission_eic_reappointment.html
@@ -1,11 +1,16 @@
-Dear {{submission.editor_in_charge.get_title_display}} {{submission.editor_in_charge.last_name}},\n\n
+Dear {{submission.editor_in_charge.get_title_display}} {{submission.editor_in_charge.user.last_name}},\n\n
 
-The authors of the SciPost Submission {{submission.title}} by {{submission.author_list}} have resubmitted their manuscript.\n\n
+The authors of the SciPost Submission\n\n
+{{submission.title}}
+\n\n
+by {{submission.author_list}}
+\n\n
+have resubmitted their manuscript.\n\n
 
-As Editor-in-charge, you can take your editorial actions from the submission\'s <a href="{% url 'submissions:editorial_page' submission.arxiv_identifier_w_vn_nr %}">editorial page</a>
-(also accessible from your <a href="{% url 'scipost:personal_page' %}">personal page</a> under the Editorial Actions tab).\n
+As Editor-in-charge, you can take your editorial actions from the submission\'s editorial page: {{request.get_host}}{% url 'submissions:editorial_page' submission.arxiv_identifier_w_vn_nr %}.\n
+(also accessible from your personal page under the Editorial Actions tab), see {{request.get_host}}{% url 'scipost:personal_page' %}. \n\n
 
-You can either take an immediate acceptance/rejection decision, or run a new refereeing round, in which case you should now invite at least 3 referees; you might want to make sure you are aware of the detailed procedure described in the <a href="{% url 'scipost:EdCol_by-laws' %}">Editorial College by-laws</a>.
+You can either take an immediate acceptance/rejection decision, quickly consult previous referees or run a new refereeing round, in which case you should now invite at least 3 referees; you might want to make sure you are aware of the detailed procedure described in the Editorial College by-laws. See {{request.get_host}}{% url 'scipost:EdCol_by-laws' %}.
 \n\n
 
 Many thanks in advance for your collaboration,\n
diff --git a/templates/email/submission_eic_reappointment_html.html b/templates/email/submission_eic_reappointment_html.html
index c0c08326e76be5ae162681e7e07b057e26e3c1f0..41b1ff0ce9ad308359476785e9c7dc94c6c1d30c 100644
--- a/templates/email/submission_eic_reappointment_html.html
+++ b/templates/email/submission_eic_reappointment_html.html
@@ -1,14 +1,14 @@
-<h3>Dear {{submission.editor_in_charge.get_title_display}} {{submission.editor_in_charge.last_name}},</h3>
+<h3>Dear {{submission.editor_in_charge.get_title_display}} {{submission.editor_in_charge.user.last_name}},</h3>
 
 <p>
     The authors of the SciPost Submission "<span style="color: grey;">{{submission.title}} by {{submission.author_list}}</span>" have resubmitted their manuscript.
 </p>
 <p>
-    As Editor-in-charge, you can take your editorial actions from the submission\'s <a href="{% url 'submissions:editorial_page' submission.arxiv_identifier_w_vn_nr %}">editorial page</a>.
-    (also accessible from your <a href="{% url 'scipost:personal_page' %}">personal page</a> under the Editorial Actions tab).
+    As Editor-in-charge, you can take your editorial actions from the submission\'s <a href="{{request.get_host}}{% url 'submissions:editorial_page' submission.arxiv_identifier_w_vn_nr %}">editorial page</a>.
+    (also accessible from your <a href="{{request.get_host}}{% url 'scipost:personal_page' %}">personal page</a> under the Editorial Actions tab).
 </p>
 <p>
-    You can either take an immediate acceptance/rejection decision, or run a new refereeing round, in which case you should now invite at least 3 referees; you might want to make sure you are aware of the detailed procedure described in the <a href="{% url 'scipost:EdCol_by-laws' %}">Editorial College by-laws</a>.
+    You can either take an immediate acceptance/rejection decision, quickly consult previous referees or run a new refereeing round, in which case you should now invite at least 3 referees; you might want to make sure you are aware of the detailed procedure described in the <a href="{{request.get_host}}{% url 'scipost:EdCol_by-laws' %}">Editorial College by-laws</a>.
 </p>
 <p>
     Many thanks in advance for your collaboration,