KENT-WEB サポートコーナー 過去ログ [ 0245 ]


記事No: 1075
投稿日: 2007/07/17(Tue) 00:01:06
タイトルpostmailがgmailで文字化け
ID情報: kuronjp
投稿者: クーロン
URLhttp://kuronjp.kuron.jp/postmail/postmail.html

postmailの入力内容のコピーと説明文を加えた状態で自動返信する
ようにしています。
yahooなどのメーラーで受信するには問題ないのですが、
Gmail(https://mail.google.com/mail/)で受信すると
tmplフォルダのbody.txtの内容は文字化けしませんが、
postmail.cgiに追加した説明文などが文字化けしてしまいます。

以下コードですが、何が原因なのでしょうか?
宜しくお願いします。

# MIMEエンコード
if (-e $mimew) {
require $mimew;
$subject2 = &mimeencode($subject);
$from = &mimeencode("\"$master_name\" <$mailto>");
$from2 = &mimeencode("\"$in{'name'}\" <$email>"); ## ←追加
} else {
$subject2 = &base64($subject);
$from = &base64("\"$master_name\"") . " <$mailto>";
$from2 = &base64("\"$in{'name'}\"") . " <$email>"; ## ←追加
}

# 送信内容フォーマット化
$body = "To: $mailto\n";
$body .= "From: $from2\n"; ## ←修正
#if ($cc_mail && $email) { $body .= "Cc: $email\n"; } ## ←コメントアウト
$body .= "Subject: $subject2\n";
$body .= "MIME-Version: 1.0\n";
$body .= "Content-type: text/plain; charset=iso-2022-jp\n";
$body .= "Content-Transfer-Encoding: 7bit\n";
$body .= "Date: $date2\n";
$body .= "X-Mailer: $ver\n\n";
$body .= "$tbody\n";
# 送信内容フォーマット化
$name = $in{'name'}; ## ←追加
$tbody2 = <<EOM;
--------------------------------------------------------
ここに入力した説明文が文字化け
--------------------------------------------------------

$name 様

上の名前も文字化け。ここに入力した内容も文字化けします

EOM
$body2 = "To: $email\n";
$body2 .= "From: $from\n";
$body2 .= "Subject: $subject2\n";
$body2 .= "MIME-Version: 1.0\n";
$body2 .= "Content-type: text/plain; charset=iso-2022-jp\n";
$body2 .= "Content-Transfer-Encoding: 7bit\n";
$body2 .= "Date: $date2\n";
$body2 .= "X-Mailer: $ver\n\n";
$body2 .= "$tbody2\n";
$body2 .= "$tbody\n"; ## ←追加


記事No: 1077
投稿日: 2007/07/17(Tue) 18:28:20
タイトルRe: postmailがgmailで文字化け
ID情報: kent
投稿者: KENT
URLhttp://www.kent-web.com/

> postmailの入力内容のコピーと説明文を加えた状態で自動返信する
> ようにしています。
> yahooなどのメーラーで受信するには問題ないのですが、
> Gmail(https://mail.google.com/mail/)で受信すると
> tmplフォルダのbody.txtの内容は文字化けしませんが、
> postmail.cgiに追加した説明文などが文字化けしてしまいます。
>
> 以下コードですが、何が原因なのでしょうか?
> 宜しくお願いします。

考え方だけですが、postmail.cgiでは、本文の文字コードをJISコードに変換して送信しています。
改造追加した部分だけが文字化けを起こしているのならば、文字コードが統一されていないせいではないでしょうか。


記事No: 1079
投稿日: 2007/07/17(Tue) 20:21:14
タイトルRe^2: postmailがgmailで文字化け
ID情報: kuronjp
投稿者: クーロン
URLhttp://kuronjp.kuron.jp/postmail/postmail.html

実はあまり分からない初心者なのですが、文字コードを統一
させる為には、どのように書き変えれば良いのでしょうか?
基本的なことかもしれませんが、どうか宜しくお願いします。


記事No: 1080
投稿日: 2007/07/17(Tue) 20:28:24
タイトルRe^3: postmailがgmailで文字化け
ID情報: fuyuki
投稿者: BAL
URLhttp://f43.aaa.livedoor.jp/~sumure/

> 実はあまり分からない初心者なのですが、文字コードを統一
> させる為には、どのように書き変えれば良いのでしょうか?
> 基本的なことかもしれませんが、どうか宜しくお願いします。

PostMailの上位版のClipMailに変更すれば問題が解決すると思いますが。
http://www.kent-web.com/data/clipmail.html


記事No: 1084
投稿日: 2007/07/18(Wed) 01:54:24
タイトルRe^4: postmailがgmailで文字化け
ID情報: diva
投稿者: クーロン

ClipMailにすることでGmailの文字化けの件は解決できました。
ありがとうございました。

しかしひとつ問題がありまして、自動返信本文内容内に送信者の
名前を表示させたくて、body_resに
$name 様
としてみたのですが、なにも変化がありません。

自動返信メール本文内に名前&様を表示させる為にはどのように
したら良いのでしょうか?


記事No: 1085
投稿日: 2007/07/18(Wed) 08:24:27
タイトルRe^5: postmailがgmailで文字化け
ID情報: fuyuki
投稿者: BAL
URLhttp://f43.aaa.livedoor.jp/~sumure/

> ClipMailにすることでGmailの文字化けの件は解決できました。
> ありがとうございました。
>
> しかしひとつ問題がありまして、自動返信本文内容内に送信者の
> 名前を表示させたくて、body_resに
> $name 様
> としてみたのですが、なにも変化がありません。
>
> 自動返信メール本文内に名前&様を表示させる為にはどのように
> したら良いのでしょうか?

以下の修正を
sendmail.pl

#-------------------------------------------------
# 送信実行
#-------------------------------------------------
-- 途中省略 --

# 自動返信ありのとき
my $resbody;
if ($auto_res) {

# テンプレ
open(IN,"$tmpl_bres");
while (<IN>) {
s/\r\n/\n/;
s/\r/\n/g;

$resbody .= $_;
}
close(IN);

# 変数変換
$resbody =~ s/\$date/$date1/g;
$resbody =~ s/\$agent/$agent/g;
$resbody =~ s/\$host/$host/g;
$resbody =~ s/\$name/$in{'name'}/g;## ←追加
# コード変換


記事No: 1086
投稿日: 2007/07/18(Wed) 11:47:46
タイトルRe^6: postmailがgmailで文字化け
ID情報: kuronjp
投稿者: クーロン

BAL様
無事成功しました。Gmailでも文字化けもなく、なにもかもがバッチリです。
ご親切にありがとうございました。


[検索ページ]