0

現在、新しい SMTP を作成し、事前に作成された .oft Microsoft テンプレートを使用して自動電子メールを送信するスクリプトがあります。実際にメールを送信するためのコードは次のとおりです。

    use strict;
    use Net::SMTP;
    my $email = "blah@blah.com";
    my $emailTemplate = "C:/place/where/template/goes/template.oft;


    open FILE, "$template" or die $!;
    binmode(FILE);
    my $data = do { local $/, <FILE> };
    close FILE;


    $smtp = NET::SMTP->('smtp.blah.com');
    $smtp->mail{'EMAILGROUP');
    $smtp->to('person@blah.com');

    $smtp->data();
    $smtp->datasend("Subject: This is the subject");
    $smtp->datasend("$data");

    $smtp->dataend();
    $smtp->quit;

これにより、次のものがユーザーに送信されます

    ÐÏ à¡± á> þÿ        
    þÿÿÿ
    ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ        ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ        ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ        ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ        ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿRoot 

そしてそれは続きます。.oft ファイルは UTF-8 で、正しく変換されていないと思います。実際に電子メールを送信する前に、これらすべてを変換するためにできることはありますか?

4

1 に答える 1

3

MIME::Lite : 定義済みの文字セットや添付ファイルを含むメールを送信する

moduleMIME::Liteの代わりに moduleを使用しますNet::SMTP
文字セットの宣言な​​ど、適切な MIME ヘッダーを設定するタスクが容易になります。

$msg->set("Content-type" => "text/plain; charset=UTF-8");

MIME::LiteSMTP(およびその他の手段)を介して電子メールを送信できます。

于 2013-07-18T22:02:03.663 に答える