def guessSentTime(self, default=None): """ Try to determine the time this message claims to have been sent by analyzing various headers. @return: a L{Time} instance, or C{None}, if we don't have a guess. """ try: sentHeader = self.getHeader(u'date') except equotient.NoSuchHeader: sentHeader = None else: try: return Time.fromRFC2822(sentHeader) except ValueError: pass for received in list(self.getHeaders(u'received'))[::-1]: lines = received.value.splitlines() if lines: lastLine = lines[-1] parts = lastLine.split('; ') if parts: date = parts[-1] try: when = rfc822.parsedate(date) if when is None: continue except ValueError: pass else: return Time.fromStructTime(when) return default