+# no strftime, that is locale-dependent and not for RFC822
+my @DoW = qw(Sun Mon Tue Wed Thu Fri Sat);
+my @MoY = qw(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec);
+
+sub date ($) {
+ my ($self) = @_;
+ my $ts = $self->{ts};
+ return unless defined $ts;
+ my ($sec, $min, $hour, $mday, $mon, $year, $wday) = gmtime($ts);
+ "$DoW[$wday], " . sprintf("%02d $MoY[$mon] %04d %02d:%02d:%02d +0000",
+ $mday, $year+1900, $hour, $min, $sec);
+
+}
+
+sub from ($) {
+ my ($self) = @_;
+ my $from = __hdr($self, 'from');
+ if (defined $from && !defined $self->{from_name}) {
+ my @n = PublicInbox::Address::names($from);
+ $self->{from_name} = join(', ', @n);