0

When sending an email from marketing cloud to an outlook email - extra spaces are being added between items in a list. I reached out to support and they told me to find a multi-attribute tag in the middle of the long HTML string and add a hard return in between the attributes of the tag.

However, I'm not using any mutli-attribut tags in the code.

Any ideas of how to resolve the issues?

%%[
 VAR @ContentLanguage, @ContentCommentary, @ContentContent, @AllRecordsContent, @RowCountContent, @i,@ClientLanguage, @ClientContent,
 SET @AllRecordsContent = LookupOrderedRows("Weekly Content", 2000, "Sort_Order__c Asc", "Content_Block__c", "Looking Back")
 SET @RowCountContent = rowcount(@AllRecordsContent)
 SET @ClientContent = [Ameraudi_Newsletter_Content__c]
 SET @ClientLanguage = [Ameraudi_Newsletter_Language__c]
]%%
   <br>
<h1 style="font-family:Verdana; font-size:93%; color:DarkBlue;"> 
 %%[ IF @ClientLanguage == 'English' THEN ]%% LOOKING BACK - MARKET OVERVIEW
 %%[ELSEIF @ClientLanguage == 'Spanish' THEN ]%% ACTUALIZACIÓN DEL MERCADO 
 %%[ELSEIF @ClientLanguage == 'Portuguese' THEN ]%% REVISÃO DA SEMANA - VISÃO GERAL DO MERCADO
 %%[ENDIF]%% </h1>
<ul style="font-family:Verdana; font-size:100%; color:grey;"> 
 %%[     
   IF @RowCountContent > 0 THEN

   FOR @i = 1 TO @RowCountContent DO
   set @ContentCommentary = Field(Row(@AllRecordsContent,@i),"Commentary__c")
   set @ContentContent = Field(Row(@AllRecordsContent,@i),"Content__c")
   set @ContentLanguage = Field(Row(@AllRecordsContent,@i),"Language__c")  

   IF IndexOf(@ClientContent, @ContentContent) > 0  AND IndexOf(@ClientLanguage,@ContentLanguage) > 0 THEN
 ]%%

  <li>%%=v(@ContentCommentary)=%% </li>
  <br>

 %%[
 ENDIF
     NEXT @i
    ELSE
     No Rows Found
    ENDIF
 ]%%
</ul>
1
  • 2
    The engine of outlook might interpret it different than other mail clients because it uses the Microsoft office engine to render emails. Therefore there are often problems with outlook because it behaves differently. Some of the aspects can be solved with conditional if mso blocks or other html / styling. – Johannes Schapdick Jul 17 '19 at 15:41
2

This is an issue with HTML Email Development and Design, not with SFMC.

As @JohannesSchapdick mentioned, it is due to the way that Outlook is rendering your HTML - as most Email Clients have their own rules and defaults on HTML/CSS rendering, it is impossible to have the same exact experience across each client. You can get close with utilizing many redundant stylings via CSS, but that is a bit of an 'art' and requires specialization.

The issue you are experiencing is likely because Outlook will render unordered lists <ul> list items <li> with different padding or margin defaults than Gmail or Yahoo, etc. - creating different 'spaces' between each item.

The most controlable solution is to use a table tr td structure to build out your lists.

For example:

<table>

%%[ your for loop here to get values ]%%
  <tr>
    <td width="30" style="max-width:30px; width:30px;">&bull</td><td>%%=v(@yourvar)=%%</td>
  </tr>
%%[ next @i ]%%

</table>

Using tables will provide the most universal ability to style and position your lists to make them uniform across clients. You would take the above and add the appropriate CSS and other attributes, etc. as needed to correctly fit your needs.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.