使用MIME::Lite发送的邮件为什么不能显示中文?望高人指点

使用MIME::Lite发送的邮件为什么不能显示中文?望高人指点

使用MIME::Lite发送的邮件为什么不能显示中文?望高人指点
代码如下:
#!/opt/ActivePerl-5.8/bin/perl
use strict;
use MIME::Lite;
use Encode;

my $body ='<H1>和你在一起</H1><br>This is a test email.Please visit our site <a href="http://cyberciti.biz/">online</a><hr>';

# create a new MIME Lite based email
my $msg = MIME::Lite->new
(
Subject => "HTML email test",
From    => 'fa222@eyouwen.com',
To      => 'fa222@eyouwen.com',
Type    => 'text/html;charset="GBK"',
Data => $body,   
);

$msg->send( 'smtp', 'shmail.eyouwen.com',
        AuthUser=>'wosw',
        AuthPass=>'wosw',
        Timeout=>60 );
my $Sub_Title = encode_base64("$Sub_Title",'');
my $mime_msg = MIME::Lite->new(From => $from_address,To => $to_address,Subject => "=?big5?B?$Sub_Title?=",Type => 'multipart/mixed') or die "Error creating MIME body: $!\n";


你可以 試試用類似這樣子的方式 編碼夾寄  這是 subject 的範例   你將 $body 換成
my $body = encode_base64("$body",'');
這樣子 試試

我用是ok的
没戏,打出来时这个样子:
PEgxPrrNxOPU2tK7xvA8L0gxPjxicj5UaGlzIGlzIGEgdGVzdCBlbWFpbC5QbGVhc2UgdmlzaXQgb3VyIHNpdGUgPGEgaHJlZj0iaHR0cDovL2N5YmVyY2l0aS5iaXovIj5vbmxpbmU8L2E+PGhyPg==
好吧 給你 我的 sub 你參考看看 (ps:你要真的寄出去 才能看喔 不能直接 print 出來)
sub mailsend {
        #判斷是否要使用帳號及密碼登入smtp服務發送信件 -- 開始
                $MailEventPaserA = "";$MailEventPaserB = "";
                if($MailServer{'MailAccountName'} eq "" && $MailServer{'MailAccountPwd'} eq ""){
                        $MailAuthSend = "0";$MailAuthstatus = "\(匿名登入\)";
                }else{
                        $MailAuthSend = "1";$MailAuthstatus = "\(授權登入\)";
                }
        #判斷是否要使用帳號及密碼登入smtp服務發送信件 -- 結束

        print "      以$MailAuthstatus方式..寄發郵件中....";

        #設定寄件基本資訊 -- 開始
                my $from_address         = $MailServer{'From'};
                my $to_address                 = $MailServer{'To'};
                my $mail_server                = $MailServer{'Server'};
                #避免部份 mail server 無法正常顯示中文字 故將 Subject 編碼處理 -- 開始
                        $Sub_Title = $MailAuthstatus . $Sub_Title;
                        my $Sub_Title = encode_base64("$Sub_Title",'');
                #避免部份 mail server 無法正常顯示中文字 故將 Subject 編碼處理 -- 結束
        #設定寄件基本資訊 -- 結束

        #判斷是否要使用帳號及密碼登入smtp服務發送信件並正式發送郵件 -- 開始
                if($MailAuthSend){
                        my $smtp = Net::SMTP_auth->new($mail_server, Debug => $MailServer{'Debug'} , Timeout => $MailServer{'TimeOut'}) or die "Error creating MIME body: $!\n";
                        eval{
                                $smtp->auth('LOGIN',$MailServer{'MailAccountName'},$MailServer{'MailAccountPwd'}) or die "Can't authenticate!";
                                foreach $MailSplit(split(/,/,$to_address)) {
                                        $smtp->mail($from_address);
                                        $smtp->to($MailSplit);
                                        $smtp->data();
                                        $smtp -> datasend("Content-Type: text/html; charset=big5\n");
                                        #$smtp -> datasend("Content-Transfer-Encoding: base64\n");
                                        $smtp -> datasend("From: $from_address\n");
                                        $smtp -> datasend("To: $to_address\n");
                                        $smtp -> datasend("Subject: =?big5?B?$Sub_Title?=\n\n\n");
                                        $smtp -> datasend("\n");
                                        $smtp -> datasend("@Paser_HTML_Send\n");
                                        $smtp -> dataend();
                                }
                                $smtp -> quit;
                        };
                }else{
                        my $mime_msg = MIME::Lite->new(From        => $from_address,To => $to_address,Subject => "=?big5?B?$Sub_Title?=",Type => 'multipart/mixed') or die "Error creating MIME body: $!\n";
                        $mime_msg->attach(Type => 'text/html',Data => qq{@Paser_HTML_Send});
                        eval{
                                $mime_msg->send('smtp', $mail_server , Timeout => $MailServer{'TimeOut'});
                        };
                }
        #判斷是否要使用帳號及密碼登入smtp服務發送信件並正式發送郵件 -- 結束

        #成功發送與否及Debug錯誤判斷 -- 開始
                if($@){
                        if($MailServer{'Debug'}){
                                foreach($@){
                                        $_ =~ s/\n//mi;
                                        ($MailEventPaserA,$MailEventPaserB) = split(/at/,$_);
                                        print "\n      $MailEventPaserA";
                                }
                        }
                        print "失敗....";$|=1;
                        &ReSendMail;
                }else{
                        print "\成\功\....";$|=1;
                        @Paser_HTML_Send="";$Sub_Title="";
                }
        #成功發送與否及Debug錯誤判斷 -- 結束
}