-2

我在这里遇到了一种情况,试图使用来自 Perl(西里尔文)的 Mail::Sendmail 发送和发送电子邮件。

use Mail::Sendmail;
use Encode;
use utf8;

my $subject= "cyrillic message";
....

问题是我在邮件中收到无法识别的符号。

我已经尝试过使用 utf8,而不是使用 utf8,我尝试过 decode 和 encode,decode_utf8 等等(已经阅读了很多,包括 Perlmonks 的讨论),但我仍然在邮件主题中收到 2 种无法识别的符号或“子程序条目中的宽字符”。

添加:

#!/usr/bin/perl

use Mail::Sendmail;
use Encode;
use utf8;
use warnings;

my $subject= "cyrillic subject";
my $message= "cyrillic message";


my %mail = (
        To      => 'recipient@example.com',
        Subject => "$subject",
        From    => 'from@example.com',
        Message => "$message",
       );

sendmail(%mail) or die $Mail::Sendmail::error;

print "OK. Log says:\n", $Mail::Sendmail::log;
4

1 回答 1

0

不使用 utf8 和不使用 Encode 解决了问题。

我添加了 'Content-type' => 'text/html; charset="utf-8"' 标头,一切都变好了!

于 2013-11-13T11:20:18.353 回答