Isso tudo que você está tendo de dúvida é facilmente resolvido por jquery. Colocando assim:
1°- cada <tr> de cada tabela de email consta com o ID do email:
<table>
<thead>
....
</thead>
<tbody>
<tr id="idDoEmailUnico1" class="eUmEmail a-numVisualizacao"></tr>
<tr id="idDoEmailUnico2" class="eUmEmail a-numVisualizacao"></tr>
<tr id="idDoEmailUnico3" class="eUmEmail a-numVisualizacao"></tr>
</tbody>
</table>
a partir deste ponto você pode controlar isso tudo que você quer, vamos ver:
1° - idDoEmailUnico = id do email a ser lido, não existe um número igual correto?
2° - eUmEmail = você tem que saber se é um email para que seja aberto e lido, caso contrário, não abre pq não é um e-mail (logicamente :lol: )
3° - numVisualizacao = se for igual a 0, é um novo, caso contrário, já foi lido
O css para negritar a linha deve ser feito pelo identificador, então como somente o a-0 vai ser negrito, só criar o estilo para ele:
.a-0{font-weight: bold; color: green;}
No jquery você tem que capturar o email:
$('.eUmEmail').live('click', function(){
$email = $(this);
if ($email.attr('class') == 'a-0'){
$email.removeClass('a-0').addClass('classNormalDaTabela');
//aqui você realiza um post e entra na mensagem
} else {
//realiza o mesmo post
}
})
é facil, é só usar um pouco de lógica e jquery que funciona 