From 665fa99b39fe439e34c4e3042df1dfbb2bf1e956 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Sat, 26 Apr 2014 02:29:22 +0000 Subject: view: add per-message HTML footer to encourage replies This may not work with most mail user agents, however. --- lib/PublicInbox/View.pm | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) (limited to 'lib/PublicInbox/View.pm') diff --git a/lib/PublicInbox/View.pm b/lib/PublicInbox/View.pm index 0a8ab549..e4387203 100644 --- a/lib/PublicInbox/View.pm +++ b/lib/PublicInbox/View.pm @@ -21,6 +21,8 @@ sub as_html { headers_to_html_header($mime, $full_pfx) . multipart_text_as_html($mime, $full_pfx) . + '
' .
+		html_footer($mime) .
 		'
'; } @@ -182,4 +184,33 @@ sub headers_to_html_header { '
' .  $rv);
 }
 
+sub html_footer {
+	my ($mime) = @_;
+	my %cc; # everyone else
+	my $to; # this is the From address
+
+	foreach my $h (qw(From To Cc)) {
+		my $v = $mime->header($h);
+		defined($v) && length($v) or next;
+		my @addrs = Email::Address->parse($v);
+		foreach my $recip (@addrs) {
+			my $address = $recip->address;
+			my $dst = lc($address);
+			$cc{$dst} ||= $address;
+			$to ||= $dst;
+		}
+	}
+
+	my $subj = $mime->header('Subject') || '';
+	$subj = "Re: $subj" unless $subj =~ /\bRe:/;
+	my $irp = uri_escape($mime->header_obj->header_raw('Message-ID') || '');
+	delete $cc{$to};
+	$to = uri_escape($to);
+
+	my $cc = uri_escape(join(',', values %cc));
+	my $href = "mailto:$to?In-Reply-To=$irp&Cc=${cc}&Subject=$subj";
+
+	'reply';
+}
+
 1;
-- 
cgit v1.2.3-24-ge0c7