2016-09-08 5 views
0

Я генерирую автоматические письма о сборке TFS. Мне нужно сделать таблицу, поэтому я создаю HTML Таблица присвоить его свойству Тело экземпляра объекта System.Net.Mail.MailMessage:HTML: невозможно выровнять ячейки таблицы

msg.Body = message + table; 

Мой C# код работает отлично, однако я не могу выровнять мой HTML-таблицу. Это часть генерируемой HTML:

<table border="1" style="border: 1px solid; "> 
    <tr> 
    <td rowspan="5"> 
     <b>Requirement #1172660: </b> 
     <br/>Malicious apps weren't recognized on desktop (webroot did not respond) <br/> 
     </td> 
    </tr> 
    <tr> 
    <td valign="top"> 
     <b>Changeset #444273:</b> 
     <br/>By John Smith: increase webroot external service timeout 11/05/2016 10:38:59<br/> 
     </td> 
    </tr> 
    <tr> 
    <td valign="top"> 
     <b>Changeset #455754:</b> 
     <br/>By John Smith: Added retry mechanism to external service call 12/07/2016 18:19:23<br/> 
     </td> 
    </tr> 
    <tr> 
    <td valign="top"> 
     <b>Changeset #455969:</b> 
     <br/>By John Smith: Increased webroot timeout to 30 sec 13/07/2016 15:10:42<br/> 
     </td> 
    </tr> 
    <tr> 
    <td valign="top"> 
     <b>Changeset #458813:</b> 
     <br/>By John Smith: Fixed bug in soapfull request retry 28/07/2016 12:16:16<br/> 
     </td> 
    </tr> 
    <tr> 
    <td rowspan="5"> 
     <b>Requirement #1172660: </b> 
     <br/>Malicious apps weren't recognized on desktop (webroot did not respond) <br/> 
     </td> 
    </tr> 
    <tr> 
    <td valign="top"> 
     <b>Changeset #444273:</b> 
     <br/>By John Smith: increase webroot external service timeout 11/05/2016 10:38:59<br/> 
     </td> 
    </tr> 
    <tr> 
    <td valign="top"> 
     <b>Changeset #455754:</b> 
     <br/>By John Smith: Added retry mechanism to external service call 12/07/2016 18:19:23<br/> 
    </td> 
    </tr> 
    <tr> 
    <td valign="top"> 
     <b>Changeset #455969:</b> 
     <br/>By John Smith: Increased webroot timeout to 30 sec 13/07/2016 15:10:42<br/> 
    </td> 
    </tr> 
    <tr> 
    <td valign="top"> 
     <b>Changeset #458813:</b> 
     <br/>By John Smith: Fixed bug in soapfull request retry 28/07/2016 12:16:16<br/> 
    </td> 
    </tr> 
    <tr> 
    <td rowspan="2"> 
     <b>Requirement #1180032: </b> 
     <br/>Orange FR - Change text before Factory Reset/Flash <br/> 
    </td> 
    </tr> 
    <tr> 
    <td valign="top"> 
     <b>Changeset #455265:</b> 
     <br/>By John Smith: 11/07/2016 10:33:46<br/></td> 
    </tr> 
</table> 

Когда я мимо этот код в какой-то HTML составителя http://www.w3schools.com/tags/tryit.asp?filename=tryhtml_table_span Я получаю sutisfactory результата: enter image description here Хотя, как вы можете видеть, правая ячейка немного выровненных вниз. Nervertheles, моя головная боль начинается, когда я получаю свой адрес электронной почты. Сгенерированная таблица выглядит иначе: enter image description here

Как вы можете видеть, сгенерированная таблица в электронном письме имеет значительное пустое пространство в верхней части правых ячеек. Я никогда не занимался HTML в своей жизни, и у меня нет понятия, как удалить этот пробел, выровнять его сверху или сохранить такой же вид и ощущение таблицы, как в HTML (внешний вид и первый снимок экрана). Буду рад любой помощи или совета.

+1

Вы должны попробовать для создания допустимой табличной архитектуры: table> tbody> tr> td. Дисплей таблицы в письмах очень строгий. Затем, чтобы форсировать стиль, вам нужно вручную добавить style = "". – KCarnaille

+0

tbody - это единственное, чего я пропустил, не так ли? –

+1

Вам нужно проверить HTML в письме. Возьмите этот код (метод варьируется от клиента к клиенту) и вставьте его в http://jsfiddle.net/ –

ответ

1

Я нашел решение: мне нужно изменить структуру таблицы:

Сейчас я использую это:

<table> 
    <tr> 
     <td rowspan="1">Bug 1</td > 
     <td>Changeset 1</td > 
    </tr> 
    <tr> 
     <td rowspan="2">Bug 1</td > 
     <td>Changeset 1</td > 
    </tr> 
    <tr> 
     <td >Changeset 2</td >   
    </tr> 

    <tr> 
     <td rowspan="3">Bug 2</td > 
     <td >Changeset 1</td > 
    </tr> 
    <tr> 
     <td >Changeset 2</td >   
    </tr> 
    <tr> 
     <td >Changeset 3</td >   
    </tr> 
    <tr> 
     <td rowspan="4">Bug 2</td > 
     <td >Changeset 1</td > 
    </tr> 
    <tr> 
     <td >Changeset 2</td >   
    </tr> 
    <tr> 
     <td >Changeset 3</td >   
    </tr> 
    <tr> 
     <td >Changeset 3</td >   
    </tr> 

Вместо этого:

<table> 
     <tr> 
      <td rowspan="3">Bug 1</td>   
     </tr> 
     <tr> 
      <td>Changeset 1</td>   
     </tr> 
     <tr> 
      <td>Changeset 2</td>   
     </tr> 



     <tr> 
      <th rowspan="5">Bug 2</th>   
     </tr> 
     <tr> 
      <th>Changeset 1</th>   
     </tr> 
     <tr> 
      <th>Changeset 2</th>   
     </tr> 
     <tr> 
      <th>Changeset 3</th>   
     </tr> 
     <tr> 
      <th>Changeset 4</th>   
     </tr> 
</table> 
Смежные вопросы