電子書籍の厳選無料作品が豊富!

Perl でメール送信プログラムを作ったのですが、自宅の環境から会社に持ってきてテストすると文字化けしてしまいます。

自宅は、Yahoo ! , Biglobe なので送信できたのですが、会社は、自社でメールサーバを構築しているようです。

メールサーバは、qmail のようです。

ソースは、

$smtp = Net::SMTP->new("mailserver");
$smtp->mail($mailaddress);
$smtp->to($mailaddress);
$smtp->data();
$smtp->datasend("Date:$date\n");
$smtp->datasend("From:$mailaddress\n");
$smtp->datasend("To:$mailaddress\n");
$smtp->datasend("Subject:あいうえお\n");
$smtp->datasend("Content-Transfer-Encoding: 7bit\n");
$smtp->datasend("Content-Type: text/plain;charset=\"iso-2022-jp\"\n\n");
$smtp->datasend("\n");
$smtp->datasend("$StringBuffer\n");
$smtp->dataend();
$smtp->quit;

こんな感じで一般的なものです。

“あいうえお”が“ツつツつ「ツつ、ツつヲツつィツ”こんな感じに文字化けしています。

どなたかわかる方いませんか?

A 回答 (4件)

subject は、ISO-2022-JP に変換した上で base64 でエンコードしましょう。



参考 : http://perltips.twinkle.cc/perl/encode_jis_subje …

本文も ISO-2022-JP に変換するのが無難です。
$StringBuffer に入っている本文の文字コードは何でしょうか。
EUC-JP だとすると
$smtp->datasend(encode('ISO-2022-JP', decode('EUC-JP', $StringBuffer)));
となるのかな。

参考 : http://hikoboshi.org/perl/doc/encode.html
    • good
    • 0
この回答へのお礼

ありがとうございます!

うまくいきました!

やっぱり、基本が理解できてないとだめですね。。。。

勉強になりました!

お礼日時:2008/07/11 10:23

文字化けが起きるのは、Subjectの部分だけではないですか?

この回答への補足

本文のほうの文字化けが主です。

補足日時:2008/07/10 18:10
    • good
    • 0

この回答への補足

Linux の文字コードの設定は、EUC-JP でした。

補足日時:2008/07/10 16:02
    • good
    • 0
この回答へのお礼

$smtp->mail($mailaddress);
$smtp->to($mailaddress);

$date = &date;

$smtp->data();
$smtp->datasend("Date:$date\n");
$smtp->datasend("From:$mailaddress\n");
$smtp->datasend("To:$mailaddress\n");
$smtp->datasend("Subject:Software制作依頼\n");
$smtp->datasend("Content-Transfer-Encoding: 7bit\n");
$smtp->datasend("Content-Type: text/plain;charset=\"euc-jp\"\n\n");
$smtp->datasend("\n");
$smtp->datasend(encode("euc-jp", $StringBuffer)."\n");
$smtp->dataend();

$smtp->quit;

コードをこんな感じに直しましたが、文字化けしてしまいます。

あいうえお →  ???臓単?総蔵丹?総蔵・?臓俗?B こんな感じです。

お礼日時:2008/07/10 16:05

Subjectの文字コードに関する資料を探したら良いよ。


簡単に言うと会社のサーバ(sendmailかな?)は他と違う文字コードが基準で駆動してるだけ。

この回答への補足

会社のメールサーバは、qmail のようです。
サーバは、Linux なのですが、基準の文字コードの調べ方はわかりますか?

補足日時:2008/07/10 15:48
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!