From 09e788e906fcc4ebf8799dde2d41a41643a0da3b Mon Sep 17 00:00:00 2001
From: =?utf8?q?Tim=20D=C3=BCsterhus?=
Date: Thu, 16 Jun 2016 16:47:15 +0200
Subject: [PATCH] Optionally move links to the bottom in text/plain emails
---
.../mime/RecipientAwareTextMimePart.class.php | 18 ++++++++++++++++++
wcfsetup/install/lang/de.xml | 12 ++++--------
wcfsetup/install/lang/en.xml | 12 ++++--------
3 files changed, 26 insertions(+), 16 deletions(-)
diff --git a/wcfsetup/install/files/lib/system/email/mime/RecipientAwareTextMimePart.class.php b/wcfsetup/install/files/lib/system/email/mime/RecipientAwareTextMimePart.class.php
index 7bef27c3f8..122025b641 100644
--- a/wcfsetup/install/files/lib/system/email/mime/RecipientAwareTextMimePart.class.php
+++ b/wcfsetup/install/files/lib/system/email/mime/RecipientAwareTextMimePart.class.php
@@ -79,6 +79,24 @@ class RecipientAwareTextMimePart extends TextMimePart implements IRecipientAware
$result = $emogrifier->emogrify();
}
+ else if ($this->mimeType === 'text/plain') {
+ $counter = 1;
+ $urls = [];
+ $result = preg_replace_callback('~\[URL:(https?://[^\]\s]*)\]~', function ($matches) use (&$counter, &$urls) {
+ if (!isset($urls[$matches[1]])) {
+ $urls[$matches[1]] = $counter++;
+ }
+
+ return '['.$urls[$matches[1]].']';
+ }, $result);
+ $result = preg_replace_callback('/(\r?\n-- \r?\n|$)/', function ($matches) use ($urls) {
+ $list = '';
+ foreach ($urls as $url => $number) {
+ $list .= "\r\n[".$number."] ".$url;
+ }
+ return $list."\r\n".$matches[0];
+ }, $result, 1);
+ }
return $result;
}
diff --git a/wcfsetup/install/lang/de.xml b/wcfsetup/install/lang/de.xml
index e7d0ccea51..a02262acdf 100644
--- a/wcfsetup/install/lang/de.xml
+++ b/wcfsetup/install/lang/de.xml
@@ -1806,11 +1806,9 @@ Wenn {if LANGUAGE_USE_INFORMAL_VARIANT}du{else}Sie{/if} unter System -> O
freigeschaltet. {if LANGUAGE_USE_INFORMAL_VARIANT}Du kannst{else}Sie können{/if} die Funktionen {if LANGUAGE_USE_INFORMAL_VARIANT}deines{else}Ihres{/if} Benutzerkontos nun in vollem Umfang nutzen.
]]>
- getUser()->username},
-{if LANGUAGE_USE_INFORMAL_VARIANT}Ihr{else}Dein{/if} Benutzerkonto auf der Website: {@PAGE_TITLE|language} [1] wurde von
+{if LANGUAGE_USE_INFORMAL_VARIANT}Ihr{else}Dein{/if} Benutzerkonto auf der Website: {@PAGE_TITLE|language} [URL:{link}{/link}] wurde von
einem Administrator freigeschaltet. {if LANGUAGE_USE_INFORMAL_VARIANT}Du kannst{else}Sie können{/if} die Funktionen {if LANGUAGE_USE_INFORMAL_VARIANT}deines{else}Ihres{/if}
-Benutzerkontos nun in vollem Umfang nutzen.
-
-[1] {link}{/link}]]>
+Benutzerkontos nun in vollem Umfang nutzen.]]>
@@ -3048,7 +3046,7 @@ unter: {MAIL_ADMIN_ADDRESS}. Wenn {if
dann {if LANGUAGE_USE_INFORMAL_VARIANT}kannst du{else}können Sie{/if} diese E-Mail ignorieren.]]>
- getUser()->username},
-vielen Dank für {if LANGUAGE_USE_INFORMAL_VARIANT}deine{else}Ihre{/if} Registrierung auf der Website: {@PAGE_TITLE|language} [1].
+vielen Dank für {if LANGUAGE_USE_INFORMAL_VARIANT}deine{else}Ihre{/if} Registrierung auf der Website: {@PAGE_TITLE|language} [URL:{link}{/link}].
Bevor {if LANGUAGE_USE_INFORMAL_VARIANT}du dein{else}Sie Ihr{/if} Benutzerkonto vollständig verwenden {if LANGUAGE_USE_INFORMAL_VARIANT}kannst{else}können{/if} ist es notwendig,
dass Sie einmalig durch Klicken des Folgenden Links die Gültigkeit {if LANGUAGE_USE_INFORMAL_VARIANT}deiner{else}Ihrer{/if}
E-Mail-Adresse {if LANGUAGE_USE_INFORMAL_VARIANT}bestätigst{else}bestätigen{/if}:
@@ -3061,9 +3059,7 @@ Wenn {if LANGUAGE_USE_INFORMAL_VARIANT}du{else}Sie{/if} Probleme mit der Aktivie
dich{else}wenden
Sie sich{/if} bitte an den Administrator unter: {@MAIL_ADMIN_ADDRESS}. Wenn {if LANGUAGE_USE_INFORMAL_VARIANT}du
dich{else}Sie
-sich{/if} nicht bei uns registriert {if LANGUAGE_USE_INFORMAL_VARIANT}hast{else}haben{/if}, dann {if LANGUAGE_USE_INFORMAL_VARIANT}kannst du{else}können Sie{/if} diese E-Mail ignorieren.
-
-[1] {link}{/link}]]>
+sich{/if} nicht bei uns registriert {if LANGUAGE_USE_INFORMAL_VARIANT}hast{else}haben{/if}, dann {if LANGUAGE_USE_INFORMAL_VARIANT}kannst du{else}können Sie{/if} diese E-Mail ignorieren.]]>
- username}. Ihre Registrierung ist hiermit vollständig abgeschlossen.]]>
diff --git a/wcfsetup/install/lang/en.xml b/wcfsetup/install/lang/en.xml
index dbbd6aa3e0..5e38e1100a 100644
--- a/wcfsetup/install/lang/en.xml
+++ b/wcfsetup/install/lang/en.xml
@@ -1779,11 +1779,9 @@ Login with your new password: {link controller='Login' isEmail=true}{/link}]]>
by an administrator. You are now able to use your user account to itâs full extend.]]>
- getUser()->username},
-your account on the website: {@PAGE_TITLE|language} [1] has been approved
+your account on the website: {@PAGE_TITLE|language} [URL:{link}{/link}] has been approved
by an administrator. You are now able to use your user account to itâs
-full extend.
-
-[1] {link}{/link}]]>
+full extend.]]>
@@ -3086,7 +3084,7 @@ user account to itâs full extent it is required that you confirm validity of y
you did not register an account with us.]]>
- getUser()->username},
-thank your for registering at: {@PAGE_TITLE|language} [1]. Before you are
+thank your for registering at: {@PAGE_TITLE|language} [URL:{link}{/link}]. Before you are
able to user your user account to it's full extent it is required that you
confirm the validity of your email address once:
@@ -3096,9 +3094,7 @@ Your activation code is: {@$mailbox->getUser()->activationCode} {* this line end
If you have troubles confirming your email address, please contect the
administrator at: {@MAIL_ADMIN_ADDRESS}. Please ignore this email if you did
-not register with us.
-
-[1] {link}{/link}]]>
+not register with us.]]>
- username}.
--
2.20.1