2
对于像Administrative ProfessionalsDay®这样的活动发送意愿,我尝试发送邮件给所有邮件提供者给我的用户,并且接收者正确地收到电子邮件主题,除了AOL邮件提供者特殊我们在这里看到的字符(注册符号)没有得到很好的呈现。我使用Perl。部分代码如下。Aol邮件主题特殊字符显示不正确
my $email_subject = _decode_html_entities($q->param('email_subject'));
my $email_msg = MIME::Lite->new(
From => '$frm',
To => $email_to,
Subject => '=?utf-8?B?'.encode_base64($email_subject).'?=',
Type => 'text/plain',
Encoding => 'base64',
Data => $email_body
);
$email_msg->attr("content-type.charset" => 'UTF8');
$email_msg->add('X-Card-Nos' => $uc);
$email_msg->add('X-Type' => 'Test_YearAfter_Reminder');
$email_msg->add('Errors-To' => $error_mail_rec);
sub _decode_html_entities {
my $str = shift;
$str =~ s/%([a-f0-9]{2})/chr(hex($1))/egi;
return encode_utf8($str);
}
其他电子邮件提供商表示邮件主题作为
行政专业人员Day®贺卡
而AOL邮件主题表示主题行
=?UTF-8 2 B 4 QWRtaW5pc3RyYXRpdmUgUHJvZmVzc2lvbmFscyBEYXnCriBlY2FyZHM =?