add display_name to outgoing email.
In an effort to improve the formatting on outgoing emails from the renewal script, add the display_name to the To: field. I'm not completely happy with what the MIME encoding is doing here. Specifically, it chops the line on the < of <email@example.org> so you get this: "A very long name that leads to wrapping of the MIME encoded line" < email@example.org> As I read https://www.ietf.org/rfc/rfc2822.txt, it violates this SHOULD: Note: Though structured field bodies are defined in such a way that folding can take place between many of the lexical tokens (and even within some of the lexical tokens), folding SHOULD be limited to placing the CRLF at higher-level syntactic breaks. For instance, if a field body is defined as comma-separated values, it is recommended that folding occur after the comma separating the structured items in preference to other places where the field could be folded, even if it is allowed elsewhere. Brett and I decided to leave it for now and go with it.
This commit is contained in:
parent
0b05ac3c5c
commit
522df6bbfa
1 changed files with 14 additions and 1 deletions
|
@ -2,6 +2,8 @@
|
|||
|
||||
use strict;
|
||||
use warnings;
|
||||
use Encode;
|
||||
use utf8;
|
||||
|
||||
use autodie qw(open close);
|
||||
|
||||
|
@ -116,11 +118,22 @@ foreach my $supporterId (@supporterIds) {
|
|||
}
|
||||
close MESSAGE;
|
||||
my $emailTo = join(' ', @emails);
|
||||
my $displayName = $sp->getDisplayName($supporterId);
|
||||
my $fullEmailLine = "";
|
||||
foreach my $email (@emails) {
|
||||
$fullEmailLine .= ", " if ($fullEmailLine ne "");
|
||||
my $line = "";
|
||||
if (defined $displayName) {
|
||||
$line .= "\"$displayName\" ";
|
||||
}
|
||||
$line .= "<$email>";
|
||||
$fullEmailLine .= Encode::encode("MIME-Header", $line);
|
||||
}
|
||||
open(SENDMAIL, "|/usr/lib/sendmail -f \"$FROM_ADDRESS\" -oi -oem -- $emailTo $FROM_ADDRESS") or
|
||||
die "unable to run sendmail: $!";
|
||||
|
||||
print STDERR "Sending to $supporterId at $emailTo who expires on $expiresOn\n";
|
||||
print SENDMAIL "To: ", join(', ', @emails), "\n";
|
||||
print SENDMAIL "To: $fullEmailLine\n";
|
||||
print SENDMAIL @message;
|
||||
|
||||
close SENDMAIL;
|
||||
|
|
Loading…
Reference in a new issue