2017-01-27 12 views
0

Я пытаюсь использовать два условных оператора в шаблоне электронной почты HTML. Заявления проверяются для клиента MS Outlook, если true, он будет отображать изображение, иначе он попадет в следующий оператор, чтобы проверить, является ли клиент НЕ MS Outlook, а затем отображает отдельный HTML-код.HTML-условный оператор для Outlook.com

<!--[if mso]> ... <!--<![endif]--> <!--[if !mso]><!-- --> ... <!--<![endif]-->

Это работает отлично подходит для большинства настольных клиентов Outlook,, однако Outlook 2003, 2011 и 2016 (макинтош), кажется, не обращая внимания на заявление. Другая проблема, которую я имею здесь, заключается в том, что Outlook.com, похоже, тоже не распознает это утверждение.

Мне было интересно, если кто-то еще сталкивался с этой проблемой в прошлом, и если да, то каково было их решение вокруг этого? Я представил себе, что оператор будет загружать любую форму клиента Outlook, но мое предположение кажется неправильным.

Любая помощь будет оценена :)

Ура!

ответ

1

Outlook для Mac (по крайней мере, выпуск 2016 года) использует Webkit для рендеринга контента, а не для механизма MS Word, который используется большинством версий Windows для Outlook. Хорошая новость заключается в том, что вам не нужно прыгать через столько обручей, чтобы заставить их правильно отображать вещи ». Плохая новость заключается в том, что поэтому [if mso] здесь не работает.

Outlook.com, похоже, удаляет все условные обозначения, поэтому вы также не видите изображение.

Возможно, это не новость, которую вы испытываете, но надеюсь, что это поможет.

+0

Cheers Alex, это, безусловно, шаг в правильном направлении. Дает мне о чем подумать в понедельник утром! –

+0

Я принял этот ответ, я начинаю работать над решением с альтернативной тактикой, но информация здесь помогла мне понять ситуацию с условными комментариями в Outlook гораздо больше. Приветствует снова Алекс! –

0

Это то, что я использую:

В типе HTML:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

в CSS:

#outlook a{ 
     padding:0; 
    } 
    .ReadMsgBody{ 
     width:100%; 
    } 
    body{ 
     width:100% !important; 
     min-width:100%; 
     -webkit-text-size-adjust:100%; 
     -ms-text-size-adjust:100%; 
    } 
    .ExternalClass{ 
     width:100%; 
    } 
    td{ 
     border-collapse:collapse !important; 
    } 
    v*{ 
     behavior:url(#default#VML); 
     display:inline-block; 
    } 
    .ExternalClass,.ExternalClass p,.ExternalClass span,.ExternalClass font,.ExternalClass td,.ExternalClass div{ 
     line-height:100%; 
    } 

и упаковки любых условных правил в ТЕЛЕ html Использую:

<!--[if gte mso 9]> 
    <v:rect xmlns:v="urn:schemas-microsoft-com:vml" SOME OTHER RULES"> 
    <v:textbox inset="0,0,0,0"> 
    <![endif]--> 

    <table>Some other HTML elements</table> 

<!--[if gte mso 9]> 
    </v:textbox> 
    </v:rect> 
<![endif]-->