Aol 邮件主题特殊字符未正确显示
Aol mail subject special characters not showing correctly
为了发送对 Administrative Professionals Day® 等活动的祝福,我尝试通过所有邮件提供商向我的用户发送邮件,并且收件人正在正确获取电子邮件主题,除了 AOL 邮件提供商的特殊字符(注册标志)我们在这里看到的渲染效果不佳。我正在使用 perl。部分代码如下
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())/egi;
return encode_utf8($str);
}
其他电子邮件提供商将邮件主题显示为
Administrative Professionals Day® 电子贺卡
而 aol 邮件主题显示主题行为
=?utf-8?B?QWRtaW5pc3RyYXRpdmUgUHJvZmVzc2lvbmFscyBEYXnCriBlY2FyZHM= ?=
进行以下更改:
$email_msg->attr("content-type.charset" => 'UTF-8');
无需默认 EOL "\n":
Subject => '=?utf-8?B?'.encode_base64($email_subject,'').'?=',
此外,如果您在脚本中使用 'use utf8',则无需编码为 utf8。
为了发送对 Administrative Professionals Day® 等活动的祝福,我尝试通过所有邮件提供商向我的用户发送邮件,并且收件人正在正确获取电子邮件主题,除了 AOL 邮件提供商的特殊字符(注册标志)我们在这里看到的渲染效果不佳。我正在使用 perl。部分代码如下
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())/egi;
return encode_utf8($str);
}
其他电子邮件提供商将邮件主题显示为
Administrative Professionals Day® 电子贺卡
而 aol 邮件主题显示主题行为
=?utf-8?B?QWRtaW5pc3RyYXRpdmUgUHJvZmVzc2lvbmFscyBEYXnCriBlY2FyZHM= ?=
进行以下更改:
$email_msg->attr("content-type.charset" => 'UTF-8');
无需默认 EOL "\n":
Subject => '=?utf-8?B?'.encode_base64($email_subject,'').'?=',
此外,如果您在脚本中使用 'use utf8',则无需编码为 utf8。