diff --git a/lib/classes/ModulesNotification.class.php b/lib/classes/ModulesNotification.class.php
index 324b5c5d61ade3d8d3a7569c94a5540fdffa3292..3ee66421ea0065e65eaad21cf49611730aef8ca9 100644
--- a/lib/classes/ModulesNotification.class.php
+++ b/lib/classes/ModulesNotification.class.php
@@ -142,12 +142,15 @@ class ModulesNotification
             }
         }
         if (count($news)) {
-            $auth_plugin = User::find($user_id)->auth_plugin;
+            $user = User::find($user_id);
+            $auth_plugin = $user->auth_plugin;
             if (!is_a('StudipAuth' . ucfirst($auth_plugin), 'StudipAuthSSO', true)) {
                 $auth_plugin = null;
             }
             $template = $GLOBALS['template_factory']->open('mail/notification_html');
             $template->set_attribute('lang', getUserLanguagePath($user_id));
+            $template->set_attribute('rec_fullname', $user->getFullname('full'));
+            $template->set_attribute('rec_username', $user->username);
             $template->set_attribute('news', $news);
             $template->set_attribute('sso', $auth_plugin);
 
diff --git a/lib/messaging.inc.php b/lib/messaging.inc.php
index 8f2b6ce61ec4ad4ecbf9903577e74cdd89da0384..0fb7c3fd47c3c648bf337f53276816c00b99a474 100644
--- a/lib/messaging.inc.php
+++ b/lib/messaging.inc.php
@@ -183,7 +183,7 @@ class messaging
         if ($snd_user_id != "____%system%____") {
             $sender = User::find($snd_user_id);
 
-            $snd_fullname = $sender->getFullName();
+            $snd_fullname = $sender->getFullName() . ' (' . $sender->username . ')';
             $reply_to = $sender->Email;
         }
         $attachments = [];
@@ -198,8 +198,8 @@ class messaging
         $template->set_attribute('message', kill_format($message));
         $template->set_attribute('rec_fullname', $rec_fullname);
         $template->set_attribute('rec_email', $to);
+        $template->set_attribute('snd_email', $reply_to);
         if (isset($snd_fullname)) {
-            $template->set_attribute('snd_email', $reply_to);
             $template->set_attribute('snd_fullname', $snd_fullname);
         }
         if ($attachments_as_links) {
@@ -211,9 +211,10 @@ class messaging
         $template->set_attribute('lang', getUserLanguagePath($rec_user_id));
         $template->set_attribute('message', $message);
         $template->set_attribute('rec_fullname', $rec_fullname);
+        $template->set_attribute('rec_username', $receiver->username);
         $template->set_attribute('rec_email', $to);
+        $template->set_attribute('snd_email', $reply_to);
         if (isset($snd_fullname)) {
-            $template->set_attribute('snd_email', $reply_to);
             $template->set_attribute('snd_fullname', $snd_fullname);
         }
         if ($attachments_as_links) {
@@ -296,8 +297,6 @@ class messaging
             // system-signatur
             $snd_user_id = '____%system%____';
             setTempLanguage();
-            $message .= $this->sig_string;
-            $message .= _('Diese Nachricht wurde automatisch vom Stud.IP-System generiert. Sie können darauf nicht antworten.');
 
             restoreLanguage();
         }
@@ -306,11 +305,19 @@ class messaging
         $query = "INSERT INTO message (message_id, autor_id, subject, message, show_adressees, priority, mkdate)
                   VALUES (?, ?, ?, ?, ?, ?, UNIX_TIMESTAMP())";
         $statement = DBManager::get()->prepare($query);
+
+        $internal_message = $message;
+
+        if ($snd_user_id === '____%system%____') {
+            $internal_message .= $this->sig_string . ' ' .
+                _('Diese Nachricht wurde automatisch vom Stud.IP-System generiert. Sie können darauf nicht antworten.');
+        }
+
         $statement->execute([
             $tmp_message_id,
             $snd_user_id,
             $subject,
-            $message,
+            $internal_message,
             (int) $show_adressees,
             $priority,
         ]);
diff --git a/templates/mail/html.php b/templates/mail/html.php
index e7379653ed5779967858d4876619e60ef89dd037..cfb4e95fc724fe9e51caefe2ad5447afd9190655 100644
--- a/templates/mail/html.php
+++ b/templates/mail/html.php
@@ -1,38 +1,119 @@
-<?
+<?php
 # Lifter010: TODO
+/**
+ * @var string $snd_fullname
+ * @var string $rec_fullname
+ * @var string $rec_username
+ * @var string $message
+ * @var array $attachments
+ */
 ?>
 <html>
-<head>
-  <?= Assets::stylesheet('studip-base.css') ?>
-</head>
-<body>
-  <div style="background-color: white; margin: auto; width: 700px; padding: 4px;">
-    <?= Assets::img("locale/$lang/LC_PICTURES/mail_header.png") ?>
-    <p>
-      <?= formatReady($message, true, true) ?>
-    </p>
-    <? if (isset($attachments) && count($attachments)) : ?>
-    <hr>
-    <span class="minor">
-      <?=_("Dateianhänge:")?>
-        <ul>
-        <? foreach($attachments as $attachment) : ?>
-       	  <li>
-            <a href="<?= $attachment->getDownloadURL() ?>"><?= htmlReady($attachment->name . ' (' . relsize($attachment->file->size, false) . ')') ?></a>
-          </li>
-        <? endforeach;?>
-     	</ul>
-     </span>
-  	<? endif;?>
-    <hr>
-    <span class="minor">
-        <? if ($snd_fullname) : ?>
-            <?= sprintf(_('Diese E-Mail ist eine Kopie einer systeminternen Nachricht, die in Stud.IP von %s (<a href="%s">%s</a>) an %s (<a href="%s">%s</a>) versendet wurde.'), htmlReady($snd_fullname), htmlReady($snd_email),htmlReady($snd_email), htmlReady($rec_fullname), htmlReady($rec_email),htmlReady($rec_email)) ?>
-        <? else : ?>
-          <?= sprintf(_("Diese E-Mail ist eine Kopie einer systeminternen Nachricht, die in Stud.IP an %s versendet wurde."), htmlReady($rec_fullname)) ?>
-        <? endif ?>
-      <br><?= sprintf(_("Sie erreichen Stud.IP unter %s"), "<a href=\"" . $GLOBALS['ABSOLUTE_URI_STUDIP'] . "\">" . $GLOBALS['ABSOLUTE_URI_STUDIP'] . "</a>") ?>
-    </span>
-  </div>
-</body>
+    <head>
+        <style>
+            body {
+                background-color: #e7ebf1;
+                font-family: 'Lato', Helvetica, Arial, sans-serif;
+            }
+
+            a, a:link, a:visited {
+                color: #28497c;
+                text-decoration: none;
+            }
+            a[href] {
+                transition: color .3s;
+            }
+            a[disabled] {
+                pointer-events: none;
+            }
+
+            a:hover, a:active {
+                color: #d60000;
+                text-decoration: none;
+            }
+
+            .studip-mail {
+                background-color: #ffffff;
+                border: 1px solid #d0d7e3;
+                margin: 25px auto;
+                padding: 10px 25px 25px 25px;
+                width: 700px;
+            }
+
+            .studip-mail header {
+                border-bottom: 1px solid #d0d7e3;
+                text-align: center;
+                padding-bottom: 15px;
+            }
+
+            .studip-mail-header-logo {
+                margin-left: auto;
+                margin-right: auto;
+            }
+
+            .studip-mail-sndrec {
+                margin-top: 0;
+            }
+
+            .studip-mail-message {
+                line-height: 1.33;
+                padding: 15px 25px;
+            }
+
+            .studip-mail footer {
+                border-top: 1px solid #d0d7e3;
+                text-align: center;
+                padding-top: 15px;
+            }
+        </style>
+    </head>
+    <body>
+        <article class="studip-mail">
+            <header>
+                <div class="studip-mail-header-logo" >
+                    <img alt="" width="130" height="92" src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxNy4xLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkViZW5lXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgODQxLjg5IDU5NS4yOCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgODQxLjg5IDU5NS4yOCIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQo8Zz4NCgk8cGF0aCBmaWxsPSIjMTM0MDk0IiBkPSJNNzYzLjE3MiwyNDguMzU1YzAtMTcuNjM5LTE0LjMzMS0zMS45NTYtMzEuOTctMzEuOTU2Yy0xNy42NTIsMC0zMS45NDEsMTQuMzE2LTMxLjk0MSwzMS45NTYNCgkJczE0LjI4OSwzMS45NywzMS45NDEsMzEuOTdDNzQ4Ljg0MSwyODAuMzI1LDc2My4xNzIsMjY1Ljk5NCw3NjMuMTcyLDI0OC4zNTUgTTczMS4yMDIsMTYzLjI3Mg0KCQljLTQ2Ljk1OCwwLTg1LjA3NiwzOC4xMTItODUuMDksODUuMDYzaDI1LjM0YzAuMDA2LTMyLjk2NiwyNi43NjItNTkuNzQzLDU5Ljc1LTU5Ljc0M2MzMywwLDU5Ljc3NywyNi43ODMsNTkuNzc3LDU5Ljc2NA0KCQljMCwzMi45ODUtMjYuNzYyLDU5Ljc1Ni01OS43NSw1OS43NjJ2MjUuMzRjNDYuOTc4LTAuMDEzLDg1LjA2My0zOC4xMzksODUuMDYzLTg1LjEwM1M3NzguMTkzLDE2My4yNzIsNzMxLjIwMiwxNjMuMjcyIi8+DQoJPHJlY3QgeD0iNDg2LjkxNiIgeT0iMzk5LjMxOCIgZmlsbD0iI0FFMEEwRCIgd2lkdGg9IjMwLjY0MSIgaGVpZ2h0PSIzMC42NDEiLz4NCgk8Zz4NCgkJPHBhdGggZmlsbD0iIzNDNDQ0OCIgZD0iTTUxLjAwMiwzODUuNTY3YzEwLjk1MSw5LjUyNCwyNS4yMzYsMTYuMTksMzguMDkzLDE2LjE5YzE0LjUyMiwwLDIxLjY2NC01LjcxNCwyMS42NjQtMTQuOTk4DQoJCQljMC05Ljc2My04LjgwOC0xMi44NTgtMjIuMzgtMTguNTcxbC0xOS45OTgtOC41NzFjLTE2LjE5LTYuNDI5LTMxLjQyNy0xOS43NjEtMzEuNDI3LTQyLjM3OA0KCQkJYzAtMjUuNzEzLDIzLjA5NS00Ni4xODgsNTUuMjM1LTQ2LjE4OGMxNy44NTYsMCwzNi42NjQsNy4xNDIsNDkuOTk2LDIwLjQ3NWwtMTcuNjE3LDIyLjE0MmMtMTAuMjM5LTcuODU4LTIwLTEyLjM4MS0zMi4zOC0xMi4zODENCgkJCWMtMTEuOTA1LDAtMTkuNzYxLDUuMjM5LTE5Ljc2MSwxNC4wNDdjMCw5LjUyNCwxMC4yMzcsMTIuODU2LDIzLjgwOCwxOC4zMzJsMTkuNzYxLDguMDk1DQoJCQljMTguODA4LDcuNjE5LDMwLjcxMiwyMC4yMzcsMzAuNzEyLDQyLjE0MWMwLDI1LjcxMy0yMS40MjcsNDguMDkzLTU4LjMzLDQ4LjA5M2MtMjAuMjM2LDAtNDEuNjY0LTcuNjE5LTU3LjYxNS0yMi4zOA0KCQkJTDUxLjAwMiwzODUuNTY3eiIvPg0KCQk8cGF0aCBmaWxsPSIjM0M0NDQ4IiBkPSJNMTgzLjM3OCwzMzIuMTAzaC0zMi45ODN2LTI3LjYxNWg5OC45NTJ2MjcuNjE1aC0zMi45ODV2OTcuMDM0aC0zMi45ODNWMzMyLjEwM3oiLz4NCgkJPHBhdGggZmlsbD0iIzNDNDQ0OCIgZD0iTTI2MS4xNTUsMzA0LjQ4N2gzMi45ODN2NjguMjY5YzAsMjIuMjQ2LDUuNzU0LDMwLjMsMTguNzk0LDMwLjNjMTMuMDQsMCwxOS4xNzctOC4wNTUsMTkuMTc3LTMwLjMNCgkJCXYtNjguMjY5aDMxLjgzNHY2NC40MzVjMCw0Mi41NzItMTYuMTA5LDYyLjUxNS01MS4wMSw2Mi41MTVzLTUxLjc3Ny0xOS45NDMtNTEuNzc3LTYyLjUxNVYzMDQuNDg3eiIvPg0KCQk8cGF0aCBmaWxsPSIjM0M0NDQ4IiBkPSJNMzc5LjEyMiwzMDQuNDg3aDM2LjgxOWMzNy45NywwLDY0LjA1LDE3LjY0Myw2NC4wNSw2MS43NWMwLDQ0LjEwNS0yNi4wOCw2Mi44OTktNjIuMTMyLDYyLjg5OWgtMzguNzM3DQoJCQlWMzA0LjQ4N3ogTTQxNC4wMjMsNDAyLjY3MmMxOC4wMjcsMCwzMi4yMTgtNy4yODYsMzIuMjE4LTM2LjQzNWMwLTI5LjE0OS0xNC4xOTEtMzUuMjg2LTMyLjIxOC0zNS4yODZoLTEuOTE2djcxLjcyMUg0MTQuMDIzeiIvPg0KCQk8cGF0aCBmaWxsPSIjM0M0NDQ4IiBkPSJNNTMyLjU1LDI3My45MDZoMzUuMjM2djE1NS4yM0g1MzIuNTVWMjczLjkwNnoiLz4NCgkJPHBhdGggZmlsbD0iIzNDNDQ0OCIgZD0iTTU4NC40NDQsMjczLjkwNmg1Ni42NjNjMzMuODA4LDAsNjAuNzEyLDEyLjM4MSw2MC43MTIsNDkuOTk4YzAsMzYuNDI3LTI3Ljg1Niw1Mi42MTUtNjAuNzEyLDUyLjYxNQ0KCQkJaC0yMS40Mjd2NTIuNjE3aC0zNS4yMzVWMjczLjkwNnogTTYzOC45NjQsMzQ4LjY2NWMxOS4yODUsMCwyOC41NjktOC41NzEsMjguNTY5LTI0Ljc2MWMwLTE2LjE5LTkuOTk4LTIyLjE0Mi0yOC41NjktMjIuMTQyDQoJCQloLTE5LjI4NXY0Ni45MDNINjM4Ljk2NHoiLz4NCgk8L2c+DQo8L2c+DQo8L3N2Zz4NCg==">
+                </div>
+                <p class="studip-mail-sndrec">
+                    <?php if ($snd_fullname) : ?>
+                        <?= sprintf(_('%1$s hat Ihnen eine Nachricht in Stud.IP geschickt.'),
+                            htmlReady($snd_fullname), htmlReady($rec_fullname), htmlReady($rec_username)) ?>
+                    <?php else : ?>
+                        <?= sprintf(
+                                _('Stud.IP hat eine automatische Systemnachricht für Sie.'),
+                                htmlReady($rec_fullname),
+                                htmlReady($rec_username)
+                        ) ?>
+                    <?php endif ?>
+                </p>
+            </header>
+            <section class="studip-mail-message">
+                <p>
+                  <?= formatReady($message, true, true) ?>
+                </p>
+                <?php if (isset($attachments) && count($attachments)) : ?>
+                <div class="studip-mail-attachments">
+                  <?= _('Dateianhänge:') ?>
+                    <ul>
+                    <?php foreach($attachments as $attachment) : ?>
+                      <li>
+                        <a href="<?= $attachment->getDownloadURL() ?>"><?= htmlReady($attachment->name .
+                                ' (' . relsize($attachment->file->size, false) . ')') ?></a>
+                      </li>
+                    <?php endforeach ?>
+                    </ul>
+                 </div>
+                <?php endif ?>
+            </section>
+            <footer>
+                <?= sprintf(
+                        _('Diese E-Mail ist eine Kopie einer systeminternen Nachricht, die in Stud.IP an %1$s (%2$s) versendet wurde.'),
+                        htmlReady($rec_fullname),
+                        htmlReady($rec_username)
+                    )
+                ?>
+                <br><?= sprintf(_('Sie erreichen Stud.IP unter %s'),
+                    '<a href="' . $GLOBALS['ABSOLUTE_URI_STUDIP'] . '">' . $GLOBALS['ABSOLUTE_URI_STUDIP'] . '</a>') ?>
+            </footer>
+        </article>
+    </body>
 </html>
diff --git a/templates/mail/notification_html.php b/templates/mail/notification_html.php
index 5060fb7452de147f04fe33d0201851b6019783e1..48f4cef8dafd6a09c817f558a3f41b15bbf4b5c8 100644
--- a/templates/mail/notification_html.php
+++ b/templates/mail/notification_html.php
@@ -1,50 +1,122 @@
 <?
 # Lifter010: TODO
+/**
+ * @var string $rec_fullname
+ * @var string $rec_username
+ * @var array $news
+ * @var string $sso
+ */
 ?>
 <html>
-<head>
-  <?= Assets::stylesheet('studip-base.css') ?>
-</head>
-<body>
-  <div style="background-color: white; margin: auto; max-width: 700px; padding: 4px;">
-    <?= Assets::img("locale/$lang/LC_PICTURES/mail_header_notification.png") ?>
-    <p>
-      <?= _("Sie erhalten hiermit in regelmäßigen Abständen Informationen über Neuigkeiten und Änderungen in belegten Veranstaltungen.") ?>
-      <br><br>
-      <?= _("Über welche Inhalte und in welchem Format Sie informiert werden wollen, können Sie hier einstellen:") ?>
-      <br>
-      <a href="<?= URLHelper::getLink('dispatch.php/settings/notification', ['again' => 'yes', 'sso' => $sso]) ?>">
-        <?= URLHelper::getLink('dispatch.php/settings/notification', ['again' => 'yes', 'sso' => $sso]) ?>
-      </a>
-    </p>
-
-    <table class="default">
-      <? foreach ($news as $sem_titel => $data) : ?>
-        <tr class="table_header_bold">
-          <td colspan="2" style="font-weight: bold;">
-            <a href="<?= URLHelper::getLink('seminar_main.php', ['again' => 'yes', 'sso' => $sso, 'auswahl' => $data[0]['range_id']]) ?>">
-              <?= htmlReady($sem_titel) ?>
-              <?= (($semester = get_semester($data[0]['range_id'])) ? ' ('.$semester.')' : '') ?>
-            </a>
-          </td>
-        </tr>
-
-        <? foreach ($data as $module) : ?>
-        <tr class="<?= TextHelper::cycle('hover_odd', 'hover_even') ?>">
-          <td>
-            <a href="<?= URLHelper::getLink($module['url'], ['sso' => $sso]) ?>"><?= htmlReady($module['text']) ?></a>
-          </td>
-          <td>
-            <a href="<?= URLHelper::getLink($module['url'], ['sso' => $sso]) ?>"><?= $module['icon']->asImg(['title' => $module['text']]) ?></a>
-          </td>
-        </tr>
-        <? endforeach ?>
-      <? endforeach ?>
-    </table>
-    <hr>
-    <span class="minor">
-      <?= _("Diese Nachricht wurde automatisch vom Stud.IP-System generiert. Sie können darauf nicht antworten.") ?>
-    </span>
-  </div>
-</body>
+    <head>
+        <style>
+            body {
+                background-color: #e7ebf1;
+                font-family: 'Lato', Helvetica, Arial, sans-serif;
+            }
+
+            a, a:link, a:visited {
+                color: #28497c;
+                text-decoration: none;
+            }
+            a[href] {
+                transition: color .3s;
+            }
+            a[disabled] {
+                pointer-events: none;
+            }
+
+            a:hover, a:active {
+                color: #d60000;
+                text-decoration: none;
+            }
+
+            .studip-mail {
+                background-color: #ffffff;
+                border: 1px solid #d0d7e3;
+                margin: 25px auto;
+                padding: 10px 25px 25px 25px;
+                width: 700px;
+            }
+
+            .studip-mail header {
+                border-bottom: 1px solid #d0d7e3;
+                text-align: center;
+                padding-bottom: 15px;
+            }
+
+            .studip-mail-header-logo {
+                margin-left: auto;
+                margin-right: auto;
+            }
+
+            .studip-mail-sndrec {
+                margin-top: 0;
+            }
+
+            .studip-mail-message {
+                line-height: 1.33;
+                padding: 15px 25px;
+            }
+
+            .studip-mail footer {
+                border-top: 1px solid #d0d7e3;
+                text-align: center;
+                padding-top: 15px;
+            }
+        </style>
+    </head>
+    <body>
+    <article class="studip-mail">
+        <header>
+            <div class="studip-mail-header-logo" >
+                <img alt="" width="130" height="92" src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxNy4xLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkViZW5lXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgODQxLjg5IDU5NS4yOCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgODQxLjg5IDU5NS4yOCIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQo8Zz4NCgk8cGF0aCBmaWxsPSIjMTM0MDk0IiBkPSJNNzYzLjE3MiwyNDguMzU1YzAtMTcuNjM5LTE0LjMzMS0zMS45NTYtMzEuOTctMzEuOTU2Yy0xNy42NTIsMC0zMS45NDEsMTQuMzE2LTMxLjk0MSwzMS45NTYNCgkJczE0LjI4OSwzMS45NywzMS45NDEsMzEuOTdDNzQ4Ljg0MSwyODAuMzI1LDc2My4xNzIsMjY1Ljk5NCw3NjMuMTcyLDI0OC4zNTUgTTczMS4yMDIsMTYzLjI3Mg0KCQljLTQ2Ljk1OCwwLTg1LjA3NiwzOC4xMTItODUuMDksODUuMDYzaDI1LjM0YzAuMDA2LTMyLjk2NiwyNi43NjItNTkuNzQzLDU5Ljc1LTU5Ljc0M2MzMywwLDU5Ljc3NywyNi43ODMsNTkuNzc3LDU5Ljc2NA0KCQljMCwzMi45ODUtMjYuNzYyLDU5Ljc1Ni01OS43NSw1OS43NjJ2MjUuMzRjNDYuOTc4LTAuMDEzLDg1LjA2My0zOC4xMzksODUuMDYzLTg1LjEwM1M3NzguMTkzLDE2My4yNzIsNzMxLjIwMiwxNjMuMjcyIi8+DQoJPHJlY3QgeD0iNDg2LjkxNiIgeT0iMzk5LjMxOCIgZmlsbD0iI0FFMEEwRCIgd2lkdGg9IjMwLjY0MSIgaGVpZ2h0PSIzMC42NDEiLz4NCgk8Zz4NCgkJPHBhdGggZmlsbD0iIzNDNDQ0OCIgZD0iTTUxLjAwMiwzODUuNTY3YzEwLjk1MSw5LjUyNCwyNS4yMzYsMTYuMTksMzguMDkzLDE2LjE5YzE0LjUyMiwwLDIxLjY2NC01LjcxNCwyMS42NjQtMTQuOTk4DQoJCQljMC05Ljc2My04LjgwOC0xMi44NTgtMjIuMzgtMTguNTcxbC0xOS45OTgtOC41NzFjLTE2LjE5LTYuNDI5LTMxLjQyNy0xOS43NjEtMzEuNDI3LTQyLjM3OA0KCQkJYzAtMjUuNzEzLDIzLjA5NS00Ni4xODgsNTUuMjM1LTQ2LjE4OGMxNy44NTYsMCwzNi42NjQsNy4xNDIsNDkuOTk2LDIwLjQ3NWwtMTcuNjE3LDIyLjE0MmMtMTAuMjM5LTcuODU4LTIwLTEyLjM4MS0zMi4zOC0xMi4zODENCgkJCWMtMTEuOTA1LDAtMTkuNzYxLDUuMjM5LTE5Ljc2MSwxNC4wNDdjMCw5LjUyNCwxMC4yMzcsMTIuODU2LDIzLjgwOCwxOC4zMzJsMTkuNzYxLDguMDk1DQoJCQljMTguODA4LDcuNjE5LDMwLjcxMiwyMC4yMzcsMzAuNzEyLDQyLjE0MWMwLDI1LjcxMy0yMS40MjcsNDguMDkzLTU4LjMzLDQ4LjA5M2MtMjAuMjM2LDAtNDEuNjY0LTcuNjE5LTU3LjYxNS0yMi4zOA0KCQkJTDUxLjAwMiwzODUuNTY3eiIvPg0KCQk8cGF0aCBmaWxsPSIjM0M0NDQ4IiBkPSJNMTgzLjM3OCwzMzIuMTAzaC0zMi45ODN2LTI3LjYxNWg5OC45NTJ2MjcuNjE1aC0zMi45ODV2OTcuMDM0aC0zMi45ODNWMzMyLjEwM3oiLz4NCgkJPHBhdGggZmlsbD0iIzNDNDQ0OCIgZD0iTTI2MS4xNTUsMzA0LjQ4N2gzMi45ODN2NjguMjY5YzAsMjIuMjQ2LDUuNzU0LDMwLjMsMTguNzk0LDMwLjNjMTMuMDQsMCwxOS4xNzctOC4wNTUsMTkuMTc3LTMwLjMNCgkJCXYtNjguMjY5aDMxLjgzNHY2NC40MzVjMCw0Mi41NzItMTYuMTA5LDYyLjUxNS01MS4wMSw2Mi41MTVzLTUxLjc3Ny0xOS45NDMtNTEuNzc3LTYyLjUxNVYzMDQuNDg3eiIvPg0KCQk8cGF0aCBmaWxsPSIjM0M0NDQ4IiBkPSJNMzc5LjEyMiwzMDQuNDg3aDM2LjgxOWMzNy45NywwLDY0LjA1LDE3LjY0Myw2NC4wNSw2MS43NWMwLDQ0LjEwNS0yNi4wOCw2Mi44OTktNjIuMTMyLDYyLjg5OWgtMzguNzM3DQoJCQlWMzA0LjQ4N3ogTTQxNC4wMjMsNDAyLjY3MmMxOC4wMjcsMCwzMi4yMTgtNy4yODYsMzIuMjE4LTM2LjQzNWMwLTI5LjE0OS0xNC4xOTEtMzUuMjg2LTMyLjIxOC0zNS4yODZoLTEuOTE2djcxLjcyMUg0MTQuMDIzeiIvPg0KCQk8cGF0aCBmaWxsPSIjM0M0NDQ4IiBkPSJNNTMyLjU1LDI3My45MDZoMzUuMjM2djE1NS4yM0g1MzIuNTVWMjczLjkwNnoiLz4NCgkJPHBhdGggZmlsbD0iIzNDNDQ0OCIgZD0iTTU4NC40NDQsMjczLjkwNmg1Ni42NjNjMzMuODA4LDAsNjAuNzEyLDEyLjM4MSw2MC43MTIsNDkuOTk4YzAsMzYuNDI3LTI3Ljg1Niw1Mi42MTUtNjAuNzEyLDUyLjYxNQ0KCQkJaC0yMS40Mjd2NTIuNjE3aC0zNS4yMzVWMjczLjkwNnogTTYzOC45NjQsMzQ4LjY2NWMxOS4yODUsMCwyOC41NjktOC41NzEsMjguNTY5LTI0Ljc2MWMwLTE2LjE5LTkuOTk4LTIyLjE0Mi0yOC41NjktMjIuMTQyDQoJCQloLTE5LjI4NXY0Ni45MDNINjM4Ljk2NHoiLz4NCgk8L2c+DQo8L2c+DQo8L3N2Zz4NCg==">
+            </div>
+            <p class="studip-mail-sndrec">
+                <?= sprintf(
+                    _('Stud.IP hat eine automatische Systemnachricht für Sie.'),
+                    htmlReady($rec_fullname),
+                    htmlReady($rec_username)
+                ) ?>
+            </p>
+            <p>
+                <?= _("Sie erhalten hiermit in regelmäßigen Abständen Informationen über Neuigkeiten und Änderungen in belegten Veranstaltungen.") ?>
+                <br><br>
+                <?= _("Über welche Inhalte und in welchem Format Sie informiert werden wollen, können Sie hier einstellen:") ?>
+                <br>
+                <a href="<?= URLHelper::getLink('dispatch.php/settings/notification', ['again' => 'yes', 'sso' => $sso]) ?>">
+                    <?= URLHelper::getLink('dispatch.php/settings/notification', ['again' => 'yes', 'sso' => $sso]) ?>
+                </a>
+            </p>
+        </header>
+        <section class="studip-mail-message">
+            <table class="default">
+              <? foreach ($news as $sem_titel => $data) : ?>
+                <tr class="table_header_bold">
+                  <td style="font-weight: bold;">
+                    <a href="<?= URLHelper::getLink('seminar_main.php', ['again' => 'yes', 'sso' => $sso, 'auswahl' => $data[0]['range_id']]) ?>">
+                      <?= htmlReady($sem_titel) ?>
+                      <?= (($semester = Course::find($data[0]['range_id'])->semester_text) ? ' ('.$semester.')' : '') ?>
+                    </a>
+                  </td>
+                </tr>
+                <? foreach ($data as $module) : ?>
+                <tr class="<?= TextHelper::cycle('hover_odd', 'hover_even') ?>">
+                  <td>
+                    <a href="<?= URLHelper::getLink($module['url'], ['sso' => $sso]) ?>"><?= htmlReady($module['text']) ?></a>
+                  </td>
+                </tr>
+                <? endforeach ?>
+              <? endforeach ?>
+            </table>
+        </section>
+        <footer>
+            <?= sprintf(
+                _('Diese E-Mail wurde von Stud.IP an %1$s (%2$s) versendet.'),
+                htmlReady($rec_fullname),
+                htmlReady($rec_username)
+            )
+            ?>
+        </footer>
+    </body>
 </html>