diff --git a/core/modules/config_translation/src/Tests/ConfigTranslationUiTest.php b/core/modules/config_translation/src/Tests/ConfigTranslationUiTest.php
index 13890c0..1654a74 100644
--- a/core/modules/config_translation/src/Tests/ConfigTranslationUiTest.php
+++ b/core/modules/config_translation/src/Tests/ConfigTranslationUiTest.php
@@ -282,7 +282,7 @@ public function testContactConfigEntityTranslation() {
     $label = 'Send your feedback';
     $edit = array(
       'label' => $label,
-      'recipients' => 'sales@example.com,support@example.com',
+      'recipients' => implode("\n", ['sales@example.com', 'support@example.com']),
       'reply' => 'Thank you for your mail',
     );
     $this->drupalPostForm('admin/structure/contact/manage/feedback', $edit, t('Save'));
diff --git a/core/modules/contact/src/ContactFormEditForm.php b/core/modules/contact/src/ContactFormEditForm.php
index c545b0e..555d99c 100644
--- a/core/modules/contact/src/ContactFormEditForm.php
+++ b/core/modules/contact/src/ContactFormEditForm.php
@@ -84,8 +84,8 @@ public function form(array $form, FormStateInterface $form_state) {
     $form['recipients'] = array(
       '#type' => 'textarea',
       '#title' => $this->t('Recipients'),
-      '#default_value' => implode(', ', $contact_form->getRecipients()),
-      '#description' => $this->t("Example: 'webmaster@example.com' or 'sales@example.com,support@example.com' . To specify multiple recipients, separate each email address with a comma."),
+      '#default_value' => implode("\n", $contact_form->getRecipients()),
+      '#description' => $this->t("Example: 'support@example.com' or 'sales@example.com'. To specify multiple recipients, separate each email address on a new line."),
       '#required' => TRUE,
     );
     $form['reply'] = array(
@@ -116,11 +116,16 @@ public function validateForm(array &$form, FormStateInterface $form_state) {
     parent::validateForm($form, $form_state);
 
     // Validate and each email recipient.
-    $recipients = explode(',', $form_state->getValue('recipients'));
+    $recipients = explode("\n", $form_state->getValue('recipients'));
 
-    foreach ($recipients as &$recipient) {
+    foreach ($recipients as $delta => &$recipient) {
       $recipient = trim($recipient);
-      if (!$this->emailValidator->isValid($recipient)) {
+
+      // Clear empty lines and do not check them.
+      if (empty($recipient)) {
+        unset($recipients[$delta]);
+      }
+      elseif (!$this->emailValidator->isValid($recipient)) {
         $form_state->setErrorByName('recipients', $this->t('%recipient is an invalid email address.', array('%recipient' => $recipient)));
       }
     }
diff --git a/core/modules/contact/src/ContactFormListBuilder.php b/core/modules/contact/src/ContactFormListBuilder.php
index ed027c1..b84c33b 100644
--- a/core/modules/contact/src/ContactFormListBuilder.php
+++ b/core/modules/contact/src/ContactFormListBuilder.php
@@ -7,10 +7,8 @@
 
 namespace Drupal\contact;
 
-use Drupal\Component\Utility\SafeMarkup;
 use Drupal\Core\Config\Entity\ConfigEntityListBuilder;
 use Drupal\Core\Entity\EntityInterface;
-use Drupal\Core\Link;
 
 /**
  * Defines a class to build a listing of contact form entities.
@@ -23,9 +21,12 @@ class ContactFormListBuilder extends ConfigEntityListBuilder {
    * {@inheritdoc}
    */
   public function buildHeader() {
-    $header['form'] = t('Form');
-    $header['recipients'] = t('Recipients');
-    $header['selected'] = t('Selected');
+    $header['form'] = $this->t('Form');
+    $header['recipients'] = [
+      'data' => $this->t('Recipients'),
+      'class' => [RESPONSIVE_PRIORITY_LOW],
+    ];
+    $header['selected'] = $this->t('Selected');
     return $header + parent::buildHeader();
   }
 
@@ -36,8 +37,8 @@ public function buildRow(EntityInterface $entity) {
     // Special case the personal form.
     if ($entity->id() == 'personal') {
       $row['form'] = $entity->label();
-      $row['recipients'] = t('Selected user');
-      $row['selected'] = t('No');
+      $row['recipients'] = $this->t('Selected user');
+      $row['selected'] = $this->t('No');
     }
     else {
       $row['form'] = $entity->link(NULL, 'canonical');
@@ -47,7 +48,7 @@ public function buildRow(EntityInterface $entity) {
         '#context' => ['list_style' => 'comma-list'],
       ];
       $default_form = \Drupal::config('contact.settings')->get('default_form');
-      $row['selected'] = ($default_form == $entity->id() ? t('Yes') : t('No'));
+      $row['selected'] = ($default_form == $entity->id() ? $this->t('Yes') : $this->t('No'));
     }
     return $row + parent::buildRow($entity);
   }
diff --git a/core/modules/contact/src/Tests/ContactSitewideTest.php b/core/modules/contact/src/Tests/ContactSitewideTest.php
index 651c283..e9a9d53 100644
--- a/core/modules/contact/src/Tests/ContactSitewideTest.php
+++ b/core/modules/contact/src/Tests/ContactSitewideTest.php
@@ -130,11 +130,11 @@ function testSiteWideContact() {
     $max_length_exceeded = $max_length + 1;
     $this->addContactForm($id = Unicode::strtolower($this->randomMachineName($max_length_exceeded)), $label = $this->randomMachineName($max_length_exceeded), implode(',', array($recipients[0])), '', TRUE);
     $this->assertText(format_string('Machine-readable name cannot be longer than @max characters but is currently @exceeded characters long.', array('@max' => $max_length, '@exceeded' => $max_length_exceeded)));
-    $this->addContactForm($id = Unicode::strtolower($this->randomMachineName($max_length)), $label = $this->randomMachineName($max_length), implode(',', array($recipients[0])), '', TRUE);
+    $this->addContactForm($id = Unicode::strtolower($this->randomMachineName($max_length)), $label = $this->randomMachineName($max_length), $recipients[0], '', TRUE);
     $this->assertRaw(t('Contact form %label has been added.', array('%label' => $label)));
 
     // Create first valid form.
-    $this->addContactForm($id = Unicode::strtolower($this->randomMachineName(16)), $label = $this->randomMachineName(16), implode(',', array($recipients[0])), '', TRUE);
+    $this->addContactForm($id = Unicode::strtolower($this->randomMachineName(16)), $label = $this->randomMachineName(16), $recipients[0], '', TRUE);
     $this->assertRaw(t('Contact form %label has been added.', array('%label' => $label)));
 
     // Check that the form was created in site default language.
@@ -150,10 +150,13 @@ function testSiteWideContact() {
     $this->assertEscaped($recipients[0]);
 
     // Test update contact form.
-    $this->updateContactForm($id, $label = $this->randomMachineName(16), $recipients_str = implode(',', array($recipients[0], $recipients[1])), $reply = $this->randomMachineName(30), FALSE);
+    // Make sure we allow empty lines between recipients.
+    $new_recipients = array($recipients[0], '', $recipients[1]);
+    $this->updateContactForm($id, $label = $this->randomMachineName(16), $recipients_str = implode("\n", $new_recipients), $reply = $this->randomMachineName(30), FALSE);
+
     $config = $this->config('contact.form.' . $id)->get();
     $this->assertEqual($config['label'], $label);
-    $this->assertEqual($config['recipients'], array($recipients[0], $recipients[1]));
+    $this->assertEqual($config['recipients'], array_filter($new_recipients));
     $this->assertEqual($config['reply'], $reply);
     $this->assertNotEqual($id, $this->config('contact.settings')->get('default_form'));
     $this->assertRaw(t('Contact form %label has been updated.', array('%label' => $label)));
@@ -173,10 +176,10 @@ function testSiteWideContact() {
     $this->drupalLogin($admin_user);
 
     // Add more forms.
-    $this->addContactForm(Unicode::strtolower($this->randomMachineName(16)), $label = $this->randomMachineName(16), implode(',', array($recipients[0], $recipients[1])), '', FALSE);
+    $this->addContactForm(Unicode::strtolower($this->randomMachineName(16)), $label = $this->randomMachineName(16), implode("\n", array($recipients[0], $recipients[1])), '', FALSE);
     $this->assertRaw(t('Contact form %label has been added.', array('%label' => $label)));
 
-    $this->addContactForm($name = Unicode::strtolower($this->randomMachineName(16)), $label = $this->randomMachineName(16), implode(',', array($recipients[0], $recipients[1], $recipients[2])), '', FALSE);
+    $this->addContactForm($name = Unicode::strtolower($this->randomMachineName(16)), $label = $this->randomMachineName(16), implode("\n", array($recipients[0], $recipients[1], $recipients[2])), '', FALSE);
     $this->assertRaw(t('Contact form %label has been added.', array('%label' => $label)));
 
     // Try adding a form that already exists.
@@ -244,7 +247,7 @@ function testSiteWideContact() {
     $this->deleteContactForms();
 
     $label = $this->randomMachineName(16);
-    $recipients = implode(',', array($recipients[0], $recipients[1], $recipients[2]));
+    $recipients = implode("\n", array($recipients[0], $recipients[1], $recipients[2]));
     $contact_form = Unicode::strtolower($this->randomMachineName(16));
     $this->addContactForm($contact_form, $label, $recipients, '', FALSE);
     $this->drupalGet('admin/structure/contact');
@@ -353,7 +356,7 @@ function testAutoReply() {
    * @param string $label
    *   The form label.
    * @param string $recipients
-   *   The list of recipient email addresses.
+   *   The list of recipient email addresses separated by new line.
    * @param string $reply
    *   The auto-reply text that is sent to a user upon completing the contact
    *   form.
diff --git a/core/modules/contact/src/Tests/ContactStorageTest.php b/core/modules/contact/src/Tests/ContactStorageTest.php
index f18d10e..c1c1e56 100644
--- a/core/modules/contact/src/Tests/ContactStorageTest.php
+++ b/core/modules/contact/src/Tests/ContactStorageTest.php
@@ -52,7 +52,7 @@ public function testContactStorage() {
     $this->drupalLogin($admin_user);
     // Create first valid contact form.
     $mail = 'simpletest@example.com';
-    $this->addContactForm($id = Unicode::strtolower($this->randomMachineName(16)), $label = $this->randomMachineName(16), implode(',', array($mail)), '', TRUE, [
+    $this->addContactForm($id = Unicode::strtolower($this->randomMachineName(16)), $label = $this->randomMachineName(16), $mail, '', TRUE, [
       'send_a_pony' => 1,
     ]);
     $this->assertRaw(t('Contact form %label has been added.', array('%label' => $label)));
