• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:mail()で送信したメールのタイトル(Subject)がきちんと表示)

mail()で送信したメールのタイトルが正しく表示されない問題

kzkz-16の回答

  • kzkz-16
  • ベストアンサー率76% (10/13)
回答No.4

添付ファイルが無いなら mb_send_mail( がお勧めです。 mb_internal_encoding("UTF-8"); //ソースコードの文字コード mb_language("ja"); mb_send_mail(宛先,件名,本文,"From: "送信元""); 私の場合、これで件名の文字化けを解消できました。 ソースコードの文字コードをmb_internal_encodingで指定することで、件名や本文は自動で変換されます。

関連するQ&A

  • mailコマンドでは化けないSubjectがPOPで受信すると文字化け

    mailコマンドで、メールのタイトル一覧を表示した時には、Subjectは文字化けしていないのですが、 POP3でメーラ(WindowsのBecky)で受信すると Subjectが文字化けしてしまいます。 ヘッダ情報は以下のようになっています。 MIME-version: 1.0 Content-Type: text/plain; charset="iso-2022-jp" Content-Transfer-Encoding: 7bit 原因は何でしょうか?

  • メールのSUBJECT

    メールをMIMEエンコードし、別のプログラムで読み込んで、メールを送信していますが。。。 メールのタイトル文字が長すぎるため、下記のようにすると改行されてしまい、タイトルが半分消えてしまいます。 $str_title = mb_encode_mimeheader($title); そこで、下記のように変更しました。 $str_title = "=?iso-2022-jp?B?" . base64_encode(mb_convert_encoding( $title , "JIS" , "EUC-JP" )) . "?="."\n"; 別のプログラムでタイトルを表示させるとき、デコードされていない状態で表示されます。 ただし、メール受信のときのタイトルは表示されます。(メーラーはBeckyを使用しています。) どのようにしたら別のプログラムでも日本語が表示されるのでしょうか?

    • ベストアンサー
    • PHP
  • PHPからのHTMLメール送信

    PHP覚えはじめの初心者です。 下記のソースで自分宛にメールを送信すると、 会社のメールアドレスではHTMLメールとして受取れるのですが、 その他のメールアドレス(DION、ロリポップ、infoseek)、などでは 普通のテキストメールとしてソースが出てしまいます。 他にも何かヘッダーに付加したほうがいいのでしょうか? コツがありましたらご教授ください。 よろしくお願い致します。 <?php /* 送信先 */ $to = "hoge@hoge.com"; /* 題名 */ $subject = "HTML MAIL"; /* メッセージ */ $message = ' <html> <head> <title>テスト</title> </head> <body> <h1>テスト</h1> </body> </html> '; /* ヘッダー */ $headers = "MIME-Version: 1.0\r\n"; $headers .= "Content-type: text/html; charset=iso-2022-jp\r\n"; $headers .= "Content-Transfer-Encoding: 7bit\r\n"; $headers .= "From: hoge@hoge.com\r\n"; mail($to, $subject, $message, $headers); ?>

    • 締切済み
    • PHP
  • getMsg($msg_id)で、読み取ったメールソースから、本当のSubjectを復元したい、どうすればいいですか?

    メールのソースを見てみると、タイトルのほうが、こんなフォーマットで書かれております。 英語のタイトルは、Subject: Welcome to Flickr! - Read me 日本語のタイトルなら、 Subject: =?iso-2022-jp?B?GyRCJSIlcyUxITwlSCROJCo0aiQkGyhC?= 又は、 Subject: =?shift_jis?B?gZqQVpCii0mDR4OUg0CDk4NRg4qDSYOTksqQTYx2ieYgg1SDfYFbg0yDg4OTg3mBW4OTikqOboFJ?= そのメールのタイトルをPHPプログラミングで扱いたいんですけど、英語の場合は、何も問題なく、日本語を扱う場合は、どうやって、正常に戻せますか? 文字コード変換関数を使って $subject = mb_convert_encoding($subject, "EUC-JP","ISO-2022-JP"); $subject = mb_convert_encoding($subject, "EUC-JP","SJIS"); をいろいろ確かめましたけど、だめでした。 ご存じの方がいっらしゃいましたら、どうぞお教え下さい。 05-06-01 15:42 困り度1:暇なときに回答ください 回答件数:3件 この質問に対する回答は締め切られました

  • BCCに設定したアドレスが、ヘッダに表示されてしまう

    OutlookExpress6 の環境でアドレス帳のグループを作り、そのグループ名をBCCに設定してメールを送信したところ、メールアドレスがヘッダに表示されてしまう現象がおこりました。 以下のように、BCCに設定したアドレスの途中からヘッダに表示されてしまっています。 ※実際のアドレスは伏字にしています。 === ヘッダ上部省略 === To: =?iso-2022-jp?AAAAAAAA?= <mail@address_a> >, =?iso-2022-jp?XXXXXXX?= <mail_address_x>, =?iso-2022-jp?YYYYYYY?= <mail_address_y>, =?iso-2022-jp?ZZZZZZZ?= <mail_address_z> Subject: ?iso-2022-jp?ABCDEFG?= === 以下省略 === BCCには10件のアドレスを指定していますが、最後の3件分(その直前のアドレスの「>,」から)が表示されてしまいます。 アドレス帳のバグでしょうか? 解決策がありましたらご教授ください。

  • メール転送時にSubject変更

    全然分かってないのですが、例えば .forward などを編集する事で、メール転送時にSubjectに特定の文字を付加する事は可能でしょうか? というのも部署内で共通に使用するメールアドレスをメンバーに転送する予定なのですが、初心者ばかりなのでヘッダーの to で確認してもらうのが難しそうなんですね。何か簡単に対処できればと思ったのですが… 少し調べまして、Perlのスクリプトを仕込めば実現可能だというのは分かったのですが、もう少しお手軽にできる方法があればと思って質問しました。 回答お待ちしてます!

  • MIMEでエンコードされたMailのSubjectのデコード、エンコード

    mailにおいて、MIMEにてエンコードされたSubject: の内容をテキストに落とすと例えば下のような エンコードされた文字列になります。 これをデコードし、かつエンコードするための VisualC++のコードを教えてください。 Subject: =?ISO-2022-JP?B?GyRCJTUlcyVXJWslYSUkJWsbKEI=?= よろしくお願いします。

  • IMAP4でsubjectが検索ヒットしない

    メールサーバ(dovecot-1.0.7)にてIMAPでsubject検索すると 一致しているワードが含まれているにもかかわらずヒットしない場合があります。 SUBJECTはISO-2022-JPでエンコードされているようですが 件名が長いと分割されます。 しかし分割されている場合、個別にしか検索してくれないようです。 (なので単語がバラバラになったら検索にヒットしない) (例) Subject: =?iso-2022-jp?B?UmU6IBskQkNtMFUhJzojN24kTjtENmIkLBsoQjIwMTMxMTEx?= =?iso-2022-jp?B?MDAbJEIxXyRHJDkhIxsoQg==?= ↓ Re: 注意:今月の残金が20131111 00円です。 メールのSUBJECTを分割させない、もしくは分割も検索対象に含める場合はどうすれば よいでしょうか。 たとえば以下のようなSUBJECTだとすると・・ (1通目) Re: 注意:今月の残金が2013111100円です。 (2通目) 2013111100円が今月の残金です。 検索ワード”2013111100” では(2)しかヒットしなかったり・・。 日本語、英数字、両方で起こります。なので文字化けではなさそう。

  • Sendmailで送信すると本文にメールヘッダーが出る

    いつもお世話になります。 PerlでSendmail送信プログラムは何回か作ったことが有るのですが、いつもと同じように作っているつもりにも関わらず、送信されたメール本文の1~2行目に Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-2022-JP が表示されます。 コードは$mailtoや$mail_from、$mail_subjectなどをMIMEエンコードしてから下記の様なコードでメールヘッダーを作成し $header = <<END; To: $mailto Bcc:$mail From: $mail_from<$mail> Subject: $mail_subject Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-2022-JP END #メールの本文を下記のように作成 $body = <<END; メール本文 END $mbody=jcode::jis($body); #Sendmailで送信する。 open(MAIL, "| $SENDMAIL -i -t -f $mail") or die("ERROR: exec sendmail."); print MAIL $header, $mbody; close MAIL; というコード-です。 なにが原因かおわかりの方宜しくお願いします。

    • ベストアンサー
    • Perl
  • PHPから携帯へメール送信

    いつもお世話になっております。 PHPから携帯電話へ"絵文字付き"でメールを送るプログラムを作成している のですが、『base64_encode』等を使用して絵文字の表示までは行う事がで きました。 ですが、本文が途中で途切れてしまうのです・・・。 PHP側は、 $to = mb_convert_encoding(mb_decode_mimeheader($structure->headers['from']), 'SJIS', 'ISO-2022-JP'); $subject = mb_convert_encoding(mb_decode_mimeheader($structure->headers['subject']), 'SJIS', 'ISO-2022-JP'); (省略)  ・  ・ $body = $structure->body; $body = preg_replace('/\s*>\s.*/', '', $body); $body = mb_convert_encoding($body, 'SJIS', 'ISO-2022-JP'); //---------------------------------- // base64_encode //---------------------------------- $subject = "=?shift_jis?B?" . base64_encode($subject) . "?="; $body = base64_encode($body); //---------------------------------- // ヘッダを作成 //---------------------------------- $headers = "From: test@mail.com\n"; $headers .= "MIME-Version: 1.0\n"; $headers .= "Content-Type: text/plain; charset=Shift-JIS\n"; $headers .= "Content-Transfer-Encoding: base64"; //---------------------------------- // メール送信 //---------------------------------- $res = mail($to, $subject, $body, $headers);  ・  ・ (省略) 上記のように記述しています。 メールは送れます。絵文字も表示されます。ですが、本文が途中で途切れ てしまいます。 どなたかご教授をお願い致します。

    • ベストアンサー
    • PHP