Modify

Opened 4 years ago

Closed 4 years ago

#7417 closed defect (fixed)

[patch] Incorrect date on emails from Announcer

Reported by: tfotherby Owned by: hasienda
Priority: normal Component: AnnouncerPlugin
Severity: normal Keywords: email date
Cc: rjollos Trac Release: 0.12

Description

The emails I'm receiving from Announcer are all dated 08/01/09 00:00:00 - any idea if this is a bug or whether I have mis-configured something? Any idea how I can fix it?

For reference, I'm using trac 0.12 on centOS 5.5 and I installed trunk of Announcer this morning, via:

easy_install --always-unzip http://trac-hacks.org/svn/fullblognotificationplugin/trunk
trac-admin /var/www/trac/pph upgrade
/etc/init.d/httpd restart

Initially, emails weren't being sent, but I installed IniAdminPlugin plugin and changed the "email_enabled" to true in the trac.ini ammouncer section.

Here is a dump of the [announcer] section from trac.ini:

[announcer]
admit_domains =
always_notify_owner = true
always_notify_reporter = true
always_notify_updater = true
announcer.api.announcementsystem = enabled
announcer.distributors.mail.emaildistributor = enabled
announcer.distributors.mail.sendmailemailsender = enabled
announcer.distributors.mail.smtpemailsender = disabled
announcer.email_decorators.generic.announceremaildecorator = enabled
announcer.email_decorators.generic.staticemaildecorator = disabled
announcer.email_decorators.generic.threadingemaildecorator = enabled
announcer.email_decorators.ticket.ticketaddlheaderemaildecorator = enabled
announcer.email_decorators.ticket.ticketsubjectemaildecorator = enabled
announcer.email_decorators.wiki.wikisubjectemaildecorator = enabled
announcer.email_enabled = enabled
announcer.filters.change_author.changeauthorfilter = enabled
announcer.filters.unsubscribe.unsubscribefilter = disabled
announcer.formatters.ticket.ticketformatter = enabled
announcer.formatters.wiki.wikiformatter = enabled
announcer.opt.acct_mgr.announce.accountmanagerannouncement = disabled
announcer.pref.announcerpreferences = enabled
announcer.producers.attachment.attachmentchangeproducer = enabled
announcer.producers.ticket.ticketchangeproducer = enabled
announcer.producers.wiki.wikichangeproducer = enabled
announcer.resolvers.defaultdomain.defaultdomainemailresolver = disabled
announcer.resolvers.sessionemail.sessionemailresolver = disabled
announcer.resolvers.specified.specifiedemailresolver = disabled
announcer.subscribers.ticket_compat.carboncopysubscriber = disabled
announcer.subscribers.ticket_compat.legacyticketsubscriber = disabled
announcer.subscribers.ticket_components.ticketcomponentsubscriber = enabled
announcer.subscribers.ticket_custom.ticketcustomfieldsubscriber = enabled
announcer.subscribers.ticket_groups.joinablegroupsubscriber = enabled
announcer.subscribers.watch_users.userchangesubscriber = disabled
announcer.subscribers.watchers.watchsubscriber = enabled
announcer.subscribers.wiki.generalwikisubscriber = enabled
ctxtnav_names = Watch ThisUnwatch This
email_enabled = true
ignore_domains =
mime_encoding = base64
smtp_always_bcc =
smtp_always_cc =
smtp_default_domain =
smtp_enabled = true
smtp_from = trac@localhost
smtp_from_name = peopleperhour.com Trac
smtp_password =
smtp_port = 25
smtp_replyto = trac@localhost
smtp_server = localhost
smtp_subject_prefix = __default__
smtp_user =
ticket_subject_template = $prefix TKT $ticket.id ($summary)
use_public_cc = false
use_short_addr = false
use_tls = false

Attachments (0)

Change History (5)

comment:1 Changed 4 years ago by tfotherby

I investigated further, found the issue and have a workaround.

The Date in the emails is corrupted. It only happens on some emails and it only shows up in Evolution (not Outlook or Thunderbird because I guess they sort emails by the received date whereas Evolution is sorting by the date in email Header).

announcer/distributors/mail.py initially sets the Date header via headers['Date'] = formatdate(), at this point it looks fine:

Thu, 29 Jul 2010 14:43:43 -0000

But after value = Header(value, charset, MAXHEADERLEN-(len(key)+2)) is called in set_header() function in AnnouncerPlugin-0.12_p2.dev-py2.4.egg/announcer/announcer/util/mail.py the date is corrupted:

Date: =?utf-8?b?VGh1LCAyOSBKdWwgMjAxMCAxNDo0Mzo0MyAtMDAwMA==?=

I don't know much about the encoding function but I have found I can fix my issue by making sure the date isn't encoded, e.g.

     if key != 'Date':
        value = Header(value, charset, MAXHEADERLEN-(len(key)+2))

Hope this helps?

comment:2 Changed 4 years ago by hasienda

  • Cc rjollos added; anonymous removed
  • Keywords email date added
  • Owner changed from doki_pen to hasienda
  • Status changed from new to assigned
  • Summary changed from Incorrect date on emails from Announcer to [patch] Incorrect date on emails from Announcer

Thanks for reporting and your investigation. As you mentioned, I didn't spot it by now, since I run a Thunderbird clone here. But I confirm, can see it in the plain-text source view as well.

Certainly we'll want to fix the root cause, but your suggestion is still a good start for someone in need of workaround right now.

comment:3 Changed 4 years ago by tfotherby

Related ticket: #7669 (TracAnnouncer: don't encode pure ASCII mail headers)

comment:4 follow-up: Changed 4 years ago by doki_pen

does #7669 fix this?

comment:5 in reply to: ↑ 4 Changed 4 years ago by tfotherby

  • Resolution set to fixed
  • Status changed from assigned to closed

Replying to doki_pen:

does #7669 fix this?

Yes it does - tested this morning.

Add Comment

Modify Ticket

Action
as closed The owner will remain hasienda.
The resolution will be deleted. Next status will be 'reopened'.
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.