- 締切済み
SendMailのsubject文字化け
noname#25358の回答
![noname#25358](https://gazo.okwave.jp/okwave/images/contents/av_nophoto_60_2.gif)
そのとおりです。 通常、ヘッダーは7ビット文字列なので、Base64エンコードという処理を入れなければいけません。 フリーでエンコーダーが出ていますので、それを入手してください。 本当は、作者さんのURLを掲載するのがいいと思ったんですが、ご本人のURLが分からなかったので、うちのHPに圧縮しておいておきます。ここから拾ってください。 ただし、作者は生田さんという方なので、その方への感謝の気持ちを忘れないようにしてください(笑)
関連するQ&A
- PHPのsendmailでの文字化けについて
PHPのsendmailでの文字化けについて PHPのsendmailをしています。 ソースの概略は以下のような感じです。 mb_language("Japanese"); mb_internal_encoding("SHIFT-JIS"); mb_send_mail($to, $subject, $body, $header); 質問1 (1)とか(株)などの特殊文字を送信すると?に変換されます。 それは良いのですが、PHPのsendmailによるメール送信の 定石としては、そのまま送信して?に変換されるのが良いのでしょうか? それとも、何かの文字に変換して送信する。だとか 送信前にチェックして、警告を出すべきなのでしょうか? 出来れば方法論とソースも教えて頂きたく存じます。 質問2 全角で493文字以上の本文を送信すると、493文字以降が 文字化けしてしまいます。何か文字数制限みたいなものがあるのでしょうか?
- ベストアンサー
- PHP
- sendmailで本文が文字化けします
sendmailを使ってメールを送信していますが、下記処理中で、charsetの指定を入れないと本文は文字化けしないのですが、指定を入れると文字化けしてしまいます。 ※ちなみに、OutlookExpressはどの場合でも文字化けしないで受信できました。 どなたかご存知のかた教えていただけないでしょうか。 ソースは以下のような感じです。 require "/XXX/jcode.pl";# 文字列変換 require "/XXX/mimew.pl";# MIME エンコード # メールHEADER作成 $head = "From: $FromUser\n"; $head .= "To: $ToUser\n"; $head .= "Subject: $Subject\n"; $head .= "Mime-Version: 1.0\n"; $head .= "Content-Type: text/plain; charset=\"ISO-2022-JP\"\n"; $head .= "Content-Transfer-Encoding: 7bit\n"; $head .= "\n"; # JISコード変換 $code = &jcode'convert(*head, 'jis'); # エンコード $header = &mimeencode($head); # メール本文作成 $body = "メール送信のテストです\n"; $code = &jcode'convert(*body, 'jis'); if (open(MAIL,"|/usr/lib/sendmail -f $FromUser $ToUser")){ print MAIL $header; print MAIL $body; print MAIL "\n\n"; close(MAIL); }
- 締切済み
- Perl
- "京"の文字化けで困っています。
"京"の文字化けで困っています。 postgres 7.2.4 サーバを使用し、サーバ側でECPG(埋込SQL)にて、 S-JISのCSVファイルを読込、EUCに変換し、データベースに登録を行い、 windowsのアプリ(visualBasic作成)でodbc接続にて データを表示させると"京"の漢字が文字化けをおこしてしまいました。 ("東京支店" -> "東=支店"と表示されてしまいます。) サーバのデータベースはEUC-JPで構築しております。 EUCの"京"の文字はS-JISの文字コード表にないためなのでしょうが、 ODBCで変換をしてくれていないのでしょうか・・ 勉強不足ですみませんが皆様のお知恵をお借りできればと思います。 よろしくお願いいたしいます。
- ベストアンサー
- PostgreSQL
- メールを文字化けしないようにしたい
次のようにメールを送信しようとしています。 Fedora CoreはUTF-8なので、jcode.plでJISに変換しようとしています。 require "jcode.pl"; $subject = "テストメール"; $data = "これはテストメールです。"; &jcode::convert(\$subject,'jis'); &jcode::convert(\$data,'jis'); @str = "subject:$subject\n\n"); push (@str, "$data\n.\n"); これがなぜかうまくいきません。メーラーの文字コードをutf8にすると正常に表示されます。 使い方が違うのかと思ったので、次のように変えてみたところ、エラーになりました。 &jcode::convert(\$subject,'utf8','jis'); また、先頭にuse utf8;を付けてみたところ、送信できたものの文字化けが余計ひどくなりました。 インターネットで検索したり本を読んでみたりしても、よくわかりませんでした。 どうやったらJISに変換できるのでしょうか。 よろしくお願いします。
- ベストアンサー
- Perl
- VBで出力したCSVファイルの文字化けについて。
VBで複数のCSVファイルから必要なデータのみを 新たなCSVファイルに出力するアプリケーションを作成しています。 処理自体は出力ファイルの作成まできちんとできるのですが、 エクセルで開くと文字化けが起きてしまいます。 文字化けが起きるのは漢字と片仮名(全角、半角両方)です。 ちなみにNotepadで開くと文字化けは起きていませんでした。 また、エクセルのほかにwordpadで開いても文字化けが起きていました。 入力用のCSVファイルの文字コードは分かっていません。 ファイルの読み込みはGetEncoding("Shift_JIS")で読み込んでいます。 文字化けに関する質問は他にも多数あり重複しているかもしれませんが 宜しくお願いします。
- ベストアンサー
- Visual Basic
- 文字化けで困っています。
PHP のプログラムで CSV の読み込みを行うプログラムを組んだのですが、 文字化けするケースがあり困っています。 どういうケースで文字化けするのかもよくわからないのです。 CSV 読み込みプログラムは、次のサイトのものを利用させていただいています。 http://d.hatena.ne.jp/deeeki/20110410/excel_csv_php 文字化けする文字は、全角大文字で。 「INSURANCE BLDG. VI(6)」 で、 文字化け後の文字は、 「��NSURANCE BLDG. VI(6)」 です。 Excel で作成した CSV データを UTF-8 の PHP アプリでデータベースに 登録しようとしています。 Shift_JIS から UTF-8 の文字コード変換です。 わかる方、書き込みお願いします。 よろしくお願いします。
- ベストアンサー
- PHP
- sendmailの文字化け
フリーのショッピングカートのCGIをダウンロードして使ってみたところ、カート自体は問題なく動きましたが、sendmailで送信した内容が文字化けしています。 件名は $subject = &mail64encode($subject);sub mail64encode { local($subject) = $_[0]; &jcode'convert(*subject, "jis"); …省略… の形でエンコードしているので日本語で表示されています。 本文は if( open(MAIL,"| /$mail_pass1/$mail_pass2/sendmail $email")) { &conv; print MAIL "From: $email\n"; print MAIL "To: $user\n"; print MAIL "Subject: $subject\n"; print MAIL "注文年月日\n"; print MAIL "$date\n"; print MAIL "お名前 $regname\n"; ・・・省略… print MAIL "---------------------------------------------------------------\n"; print MAIL "Remote addr: $ENV{'REMOTE_ADDR'}\n"; print MAIL "Remote host: $ENV{'REMOTE_HOST'}\n"; print MAIL "User Agent : $ENV{'HTTP_USER_AGENT'}\n"; close(MAIL); となっています。 print mail の中身はそのまま出力されるのではないのですか? 別にエンコードが必要ですか? 英数字は問題なく出力されるようですが、日本語は全滅です。 jocode.plを使用しています。 どなたかご教示下さい。
- ベストアンサー
- その他(インターネット・Webサービス)
- sendmailで文字化け
sendmailを使いインターネットから相手のメールに送るCGIを作りました。目的はアイモードのメールに送信する事です。しかし携帯電話の所にメールを飛ばすと題名が文字化けしてしまいます。内容の部分は大丈夫なのですが、何かに変換しなければ行けないのでしょうか?教えて下さい。お願します。
- 締切済み
- CGI
- sendmail 受信メールが文字化け
sendmailで送られてくるメールがoutlook2003では一部文字化けしてしまいます。(カテゴリ「お名前:」の部分が文字化けします) 他にも20項目ぐらいありますので一括で変換できるような形にしたいと思いますがどうすれば良いでしょうか? コードの一部を記載させていただきます。 ■コード内容 sub senddatamail{ if (!open (OUT,"|$sendmail -t")) {&error('情報メール送信エラー');} jcode::convert(\$in{'namae'},'jis'); print OUT "お名前:$in{'namae'}\n"; close(OUT); } ■出力結果 、ェフセチー:テスト太郎
- 締切済み
- Perl
- 文字化けを修正して表示
すでに文字化けして保存されてしまっているメールのsubujectの文字化けを修正して表示させたいと思っています。CGI/perlでこのようなことは可能なのでしょうか。 NAMAZUにおいてはどうやらできているので、もしperlじゃなくこうすればできるというのでもかまいませんので教えていただけませんでしょうか。 なお、メールのsubjectは次のようにして抜き出しました。 FILESUBJECT: while (<@fileadd>){ #fileaddはファイルのリスト open (MFILE,$_); while (<MFILE>){ if ($_,/^Subject:/) { s/Subject://; chop; push @subject,$_; #print; next FILESUBJECT; } } } print "@subject\n"; これでsubjectの中身は取れるのですが、文字化けをどうすれば直せますか? なお、OSはsolaris8です。
- 締切済み
- CGI