0

私はperlのフォーマット構文を使用してフォーマットされたテキスト出力を生成しています。次に、出力全体をスカラー変数に丸呑みし、これを電子メールの本文として送信すると、テキスト全体のフォーマットが失われます。面白いことに、受信した電子メールの本文をコピーして貼り付けます元の書式設定されたテキストとして貼り付けるテキスト エディター (メモ帳)。別のエンコーディングを試しましたが、html がさらに悪いため、何も送信に役立ちませんでした。この問題を解決できるポインタをいただければ幸いです。電子メールには、MIME::Lite と Net::SMTP を使用しています。ありがとう/G

編集:メールを送信するために使用したコードは次のとおりです。

$msg = MIME::Lite->new(
    From    => 'username@domain.com',
    To      => 'username2@domain.com',
    Cc      => '',
    Subject => 'Helloooooo,!',
    Type    => 'multipart/related',
);

$msg->attach(
    Type => 'text/plain charset=ANSI',
    Data => encode("Windows-1250", $data)
);

$msg->send('smtp', 'smtp.domain', Debug=>0);
4

2 に答える 2

2

私はこの構造をうまく使用しています:

# Convert the data to HTML.
my $html = $data;
$html =~ s/&/&/g;
$html =~ s/</&lt;/g;
$html =~ s/>/&gt;/g;

# Add header and formatting.
$html = <<"__EOI__";
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title>Helloooooo,!</title>
</head>
<body>
<pre>$html</pre>
</body>
</html>
__EOI__

# Convert to bytes.
$html = encode("UTF-8", $html);

# Send it.
my $msg = MIME::Lite->new(
        From    => 'username@domain.com',
        To      => 'username2@domain.com',
        Subject => 'Helloooooo,!',
        Type    => 'text/html',
        Data    => $html,
);
$msg->send();

この場合は不要なので、あなたのように $msg->attach() は使用しません。

于 2012-09-26T08:52:27.910 に答える