materio-base-legacy/sites/all/modules/contrib/mail/smtp/smtp-base64-1741082-16.patch
2015-04-19 16:46:59 +02:00

29 lines
1.4 KiB
Diff

diff --git a/smtp.mail.inc b/smtp.mail.inc
index 2cf0841..b228e45 100644
--- a/smtp.mail.inc
+++ b/smtp.mail.inc
@@ -367,10 +367,21 @@ class SmtpMailSystem implements MailSystemInterface {
}
// If plain/html within the body part, add it to $mailer->Body.
elseif (strpos($body_part2, 'text/html')) {
+ // Get the encoding.
+ $body_part2_encoding = $this->_get_substring($body_part2, 'Content-Transfer-Encoding', ' ', "\n");
// Clean up the text.
$body_part2 = trim($this->_remove_headers(trim($body_part2)));
- // Include it as part of the mail object.
- $mailer->Body = $body_part2;
+ // Check whether the encoding is base64, and if so, decode it.
+ if (drupal_strtolower($body_part2_encoding) == 'base64') {
+ // Include it as part of the mail object.
+ $mailer->Body = base64_decode($body_part2);
+ // Ensure the whole message is recoded in the base64 format.
+ $mailer->Encoding = 'base64';
+ }
+ else {
+ // Include it as part of the mail object.
+ $mailer->Body = $body_part2;
+ }
$mailer->ContentType = 'multipart/mixed';
}
}