diff --git a/doc/config.rst b/doc/config.rst
index 1df8eea55cd3efff6c9e3a1bd1bb2c9f5290812a..198356f10964001807645c6c9a4a0f653e8fdf09 100644
--- a/doc/config.rst
+++ b/doc/config.rst
@@ -58,12 +58,17 @@ not set by default.
 .. _config-email:
 
 EMAIL
-  The email address used in contact information on the website, as sender in
-  batch job notifications, and in communication with the NCBI webservices
-  using Entrez.
+  The email address used in contact information on the website and sent with
+  NCBI Entrez calls.
 
   `Default value:` ``mutalyzer@humgen.nl``
 
+BATCH_NOTIFICATION_EMAIL
+  The email address used as sender in batch job notifications. If set to
+  `None`, the value of :ref:`EMAIL <config-email>` will be used.
+
+  `Default value:` `None`
+
 .. _config-debug:
 
 DEBUG
diff --git a/mutalyzer/Scheduler.py b/mutalyzer/Scheduler.py
index 339d1ef55ff2db604597390f2b1274e071ad2143..81d952e4501e53a69eb39a649bfaed422cdc8692 100644
--- a/mutalyzer/Scheduler.py
+++ b/mutalyzer/Scheduler.py
@@ -98,14 +98,15 @@ class Scheduler() :
         if settings.TESTING:
             return
 
-        # Mail is set to '<IP ADDRESS>@webservice' if the batch job was
-        # submitted using the webservice without specifying an email address.
-        if mailTo.endswith('@webservice'):
+        # Mail is set to '<IP ADDRESS>@<INTERFACE>.mutalyzer' if the batch job
+        # was submitted without specifying an email address.
+        if mailTo.endswith('.mutalyzer'):
             return
 
         #TODO: Handle Connection errors in a try, except clause
         #Expected errors: socket.error
 
+        from_address = settings.BATCH_NOTIFICATION_EMAIL or settings.EMAIL
         download_url = website.url_for('batch_job_result',
                                        result_id=result_id)
 
@@ -123,7 +124,7 @@ With kind regards,
 Mutalyzer batch scheduler""" % download_url)
 
         message["Subject"] = "Result of your Mutalyzer batch job"
-        message["From"] = settings.EMAIL
+        message["From"] = from_address
         message["To"] = mailTo
 
         try:
@@ -138,7 +139,7 @@ Mutalyzer batch scheduler""" % download_url)
             return
 
         try:
-            smtpInstance.sendmail(settings.EMAIL, mailTo, message.as_string())
+            smtpInstance.sendmail(from_address, mailTo, message.as_string())
         except smtplib.SMTPRecipientsRefused as e:
             for address, (code, error) in e.recipients.items():
                 print 'Could not send email to %s: (%s) %s' % (address,
diff --git a/mutalyzer/config/default_settings.py b/mutalyzer/config/default_settings.py
index 4007fd0a5fc819099af9454d49b0e93153dfde36..5f3e6e05b4f2eb64c0de4e192abb8a59b8499c83 100644
--- a/mutalyzer/config/default_settings.py
+++ b/mutalyzer/config/default_settings.py
@@ -13,11 +13,14 @@ DEBUG = False
 # We are running unit tests.
 TESTING = False
 
-# This address is used in contact information on the website, as sender in
-# batch job notifications, and with retrieval of records at the NCBI using
-# Entrez.
+# This email address is used in contact information on the website and sent
+# with NCBI Entrez calls.
 EMAIL = 'mutalyzer@humgen.nl'
 
+# This email address is used as sender in batch job notifications. If `None`,
+# the value of `EMAIL` will be used.
+BATCH_NOTIFICATION_EMAIL = None
+
 # The cache directory. Used to store uploaded and downloaded files (e.g.,
 # reference files from NCBI or user) and batch job results.
 CACHE_DIR = '/tmp'
diff --git a/mutalyzer/services/rpc.py b/mutalyzer/services/rpc.py
index 3d3570ed69fb62484bc270d55e6b2508c5fba4db..4c9e5fdf7cc3b9e78499b7446c5d39607263353e 100644
--- a/mutalyzer/services/rpc.py
+++ b/mutalyzer/services/rpc.py
@@ -155,7 +155,7 @@ class MutalyzerService(ServiceBase):
                 address = unicode(ctx.transport.req_env['REMOTE_ADDR'])
             except (AttributeError, KeyError):
                 address = 'localhost'
-            email = '%s@webservice' % address
+            email = '%s@webservice.mutalyzer' % address
 
         result_id = scheduler.addJob(email, job, columns,
                                      batch_types[process], argument)
diff --git a/mutalyzer/website/templates/batch-job-progress.html b/mutalyzer/website/templates/batch-job-progress.html
index 77511f9dd300f7f862eb95e2752dadb933ce38fb..1044ad1a85ee02c04b6f22faaf28397db6767ff3 100644
--- a/mutalyzer/website/templates/batch-job-progress.html
+++ b/mutalyzer/website/templates/batch-job-progress.html
@@ -8,11 +8,14 @@
 
 {% if result_id %}
   <div id="if_items_left"{% if not items_left %} style="display:none"{% endif %}>
-    <p>Your job is in progress with <span id="items_left">{{ items_left }}</span> items remaining.</p>
-    <p>You will receive an email when the job is finished.</p>
+    <p>Your job is in progress with <strong><span id="items_left">{{ items_left }}</span> items remaining</strong>.</p>
     <p>Please note that your jobs are processed in order of submission,
     meaning you will not see any progress on this job until all your earlier
     jobs have finished.</p>
+    <p>If you specified your email address, you will receive an email when the
+    job is finished. You can also bookmark <a href="{{
+    url_for('.batch_job_progress', result_id=result_id) }}">this page</a> to
+    download your results later.</p>
   </div>
   <div id="ifnot_items_left"{% if items_left %} style="display:none"{% endif %}>
     <p>Your job is finished, please download the results:
diff --git a/mutalyzer/website/templates/batch-jobs.html b/mutalyzer/website/templates/batch-jobs.html
index 05b36fc364e4ad6b36e002f4e890e59428989b84..4877c5cc61ec4f558c51ec6541ebf8fe32b3aecc 100644
--- a/mutalyzer/website/templates/batch-jobs.html
+++ b/mutalyzer/website/templates/batch-jobs.html
@@ -37,10 +37,11 @@
     </div>
 
     <div class="form-group">
-      <label for="email">Email address</label>
-      <input name="email" id="email" type="email" class="form-control with-mailcheck"
+      <label for="email">Email address (optional)</label>
+      <input name="email" id="email" type="email"
+             class="form-control with-mailcheck"
              placeholder="Email address (notification will be sent here)"
-             required value="{{ email }}">
+             value="{{ email }}">
     </div>
 
     <div class="form-group">
diff --git a/mutalyzer/website/views.py b/mutalyzer/website/views.py
index 9fb3e4a39b11b882f20b15c89c3d96d2b0bbbfe5..f3814c31005c6c035ffb8c0afebdc15cb9696f7f 100644
--- a/mutalyzer/website/views.py
+++ b/mutalyzer/website/views.py
@@ -907,7 +907,7 @@ def batch_jobs_submit():
     errors = []
 
     if not email:
-        errors.append('Please provide an email address.')
+        email = '{}@website.mutalyzer'.format(request.remote_addr)
 
     if job_type not in BATCH_JOB_TYPES:
         errors.append('Invalid batch job type.')