PHPのclassを使ってメールを送るプログラムを書きましたが、件名だけ文字化けします。
いろいろ試してみましたが、原因が分かりません。
どなたか、お力添えをお願いします。
件名「メールテストです。」が「����ƥ��ȤǤ���」に文字化けします。
メール送信プログラム
php
1#!/usr/bin/php 2<?php 3 require("/usr/local/bin/PHPMailer/class.phpmailer.php"); 4 5 //言語設定、内部エンコーディングを指定する 6 mb_language("japanese"); 7 mb_internal_encoding("UTF-8"); 8 9 //日本語添付メールを送る 10 $to = "xxxxx@yahoo.co.jp"; //宛先 11 $subject = "メールテストです。"; //題名 12 $body="以下の内容でフォームより送信されました。\n\n"; 13 $body.="本文の内容を入れます\n"; 14 $from = "1234@56789.dip.jp"; //送り主 15 //$attachfile = "files/test.xls"; //添付ファイルパス 16 17 $mail = new PHPMailer(); 18 $mail->CharSet = "UTF-8"; 19 $mail->Encoding = "base64"; 20 21 $mail->AddAddress($to); 22 $mail->From = $from; 23 24 //$mail->FromName = mb_encode_mimeheader(mb_convert_encoding($from,"JIS","UTF-8")); 25 //$mail->Subject = mb_encode_mimeheader(mb_convert_encoding($subject,"JIS","UTF-8")); 26 //$mail->Body = mb_convert_encoding($body,"JIS","UTF-8"); 27 $mail->FromName = $from; 28 $mail->Subject = $subject; 29 $mail->Body = $body; 30 31 //添付ファイル追加 32 //$mail->AddAttachment($attachfile); 33 //$mail->AddAttachment($attachfile2); 34 $mail->Send(); //メール送信 35?>
コメントアウトの部分はインターネットから拝借したときのままで、この状態では文字化けしたので、書き直ししました。
しかし、件名の文字化け解消はできませんでした。
classは、下記URLからダウンロードしました。
http://www.inmotionhosting.com/support/files/downloads/PHPMailer_5.2.0.zip
classもインターネットから拝借したままですが、timezoneの設定でエラーが出ていたので改修しました。
php
1 public static function RFCDate() { 2// $tz = date('Z'); 3// $tzs = ($tz < 0) ? '-' : '+'; 4// $tz = abs($tz); 5// $tz = (int)($tz/3600)*100 + ($tz%3600)/60; 6// $result = sprintf("%s %s%04d", date('D, j M Y H:i:s'), $tzs, $tz); 7 date_default_timezone_set('Asia/Tokyo'); 8 $date = time(); 9 $result = date("Y/m/d H:i:s", $date); 10 return $result; 11 } 12
以下に、class.phpmailer.phpの内容を記述しようとしましたが、文字数の関係で、記載できませんでした。
回答2件
あなたの回答
tips
プレビュー