带有特殊字符的电子邮件主题与perl一起发送

时间:2016-12-01 14:00:24

标签: perl sendmail encode

我必须用perl发送电子邮件,这是代码:

my $msg = MIME::Lite->new(
    From => $tpl->{'from'},
    To => $tpl->{'to'},
    Subject => $subject_id_site . Encode::encode('MIME-Header',$subject_label). Encode::encode('MIME-Header', $tpl->{'subject'}),
    ReplyTo => $tpl->{'reply_to'},
    Encoding => 'quoted-printable',
    Type =>'text/html',
    Data => Encode::encode('utf8',$tpl->{'body'}),
);  

如果主题包含特殊字符,例如:[300584 / Yçàéè@test] subject

以下是我通过perl编码发送的电子邮件主题:[300584 / Yçà éè@test] subject

实际上我尝试使用Encode::encode('UTF8',$subject_label),但情况变得更糟。

1 个答案:

答案 0 :(得分:0)

电子邮件主题看起来"两次编码",所以我的猜测是你有一个正确的utf-8字符串没有utf-8标志。

添加:

utf8::decode($subject_label);

添加代码顶部,其余部分保持不变。

HTH 乔治