瀏覽代碼

Fix for Outlook html mail with a defined background color and no text color.
When the default text color is white (that happens with some themes) then
you will see nothing. This fix set the text color to black.

stekkel 22 年之前
父節點
當前提交
06670a38a2
共有 1 個文件被更改,包括 8 次插入0 次删除
  1. 8 0
      functions/mime.php

+ 8 - 0
functions/mime.php

@@ -1518,6 +1518,7 @@ function sq_body2div($attary, $mailbox, $message, $id){
     $divattary = Array('class' => "'bodyclass'");
     $bgcolor = '#ffffff';
     $text = '#000000';
+    $has_bgc_stl = $has_txt_stl = false;
     $styledef = '';
     if (is_array($attary) && sizeof($attary) > 0){
         foreach ($attary as $attname=>$attvalue){
@@ -1530,13 +1531,20 @@ function sq_body2div($attary, $mailbox, $message, $id){
                     $styledef .= "background-image: url('$attvalue'); ";
                     break;
                 case 'bgcolor':
+                    $has_bgc_stl = true;
                     $styledef .= "background-color: $attvalue; ";
                     break;
                 case 'text':
+                    $has_txt_stl = true;
                     $styledef .= "color: $attvalue; ";
                     break;
             }
         }
+        // Outlook defines a white bgcolor and no text color. This can lead to
+        // white text on a white bg with certain themes.
+        if ($has_bgc_stl && !$has_txt_stl) {
+            $styledef .= "color: $text; ";
+        }
         if (strlen($styledef) > 0){
             $divattary{"style"} = "\"$styledef\"";
         }