74a75
>         BRCRLF = '<br />' + CRLF
95,98c96,98
<                         new_descr = wrap(new, self.COLS, ' ', ' ', CRLF)
<                         old_descr = wrap(old, self.COLS, '> ', '> ', CRLF)
<                         old_descr = old_descr.replace(2*CRLF, CRLF + '>' + \
<                                                       CRLF)
---
>                         new_descr = wrap(new, self.COLS, ' ', ' ', BRCRLF)
>                         old_descr = wrap(old, self.COLS, '&gt; ', '&gt; ', BRCRLF)
>                         old_descr = old_descr.replace(2*CRLF, CRLF + '&gt;' + BRCRLF)
100,103c100,101
<                         cdescr += 'Old description:' + 2*CRLF + old_descr + \
<                                   2*CRLF
<                         cdescr += 'New description:' + 2*CRLF + new_descr + \
<                                   CRLF
---
>                         cdescr += 'Old description:' + 2*CRLF + old_descr + CRLF + BRCRLF
>                         cdescr += 'New description:' + 2*CRLF + new_descr + CRLF + BRCRLF
111,113c109,111
<                             chgcc += wrap(" * cc: %s (removed)" %
<                                           ', '.join(delcc), 
<                                           self.COLS, ' ', ' ', CRLF) + CRLF
---
>                             chgcc += '<li>' + wrap("cc: %s (removed)" % ', '.join(delcc),
>                                            self.COLS, ' ', ' ', BRCRLF) + '</li>'
>                             chgcc += CRLF
115,117c113,115
<                             chgcc += wrap(" * cc: %s (added)" %
<                                           ', '.join(addcc), 
<                                           self.COLS, ' ', ' ', CRLF) + CRLF
---
>                             chgcc += '<li>' + wrap("cc: %s (added)" % ', '.join(addcc),
>                                            self.COLS, ' ', ' ', BRCRLF) + '</li>'
>                             chgcc += CRLF
127c125
<                         chg = wrap('%s => %s' % (old, new), self.COLS - l, '',
---
>                         chg = wrap('%s &rarr; %s' % (old, new), self.COLS - l, '',
129c127
<                         changes_body += '  * %s:  %s%s' % (field, chg, CRLF)
---
>                         changes_body += '<li>' + '%s:  %s%s' % (field, chg, CRLF) + '</li>'
132c130,133
<             
---
> 
>         if changes_body:
>             changes_body = '<ul>' + changes_body + '</ul>'
> 
154a156
>         BRCRLF = '<br />' + CRLF
171a174
>         format = ('<tr><th align="right">%s:&nbsp;</th><td style="padding-right: 20px">%s</td>','<th align="right">%s:&nbsp;</th><td>%s</td></tr>'+CRLF)
173a177
>         sep = CRLF
174a179
>         txt = '<table border="0" cellpadding="2" cellspacing="0">' + CRLF
189a195
>             txt += '<td colspan="2">&nbsp;</td></tr>' + CRLF
194c200,201
<                 txt += CRLF.join(['', name + ':', value, '', ''])
---
>                 txt += CRLF.join(['<tr align="left"><td colspan="2"><em>' + name + ':' + '</em></td></tr>', '<tr align="left"><td colspan="2">' + value + '</td></tr>'])
>                 """txt += CRLF.join(['', name + ':', value, '', ''])"""
195a203
>         txt += '</table>' + CRLF
302a311
>         hdrs['Content-Type'] = 'text/html; charset=utf-8'
