こんにちは。
carset="ISO-2022-JP"とするだけでは、残念ながらだめでしたので、非常に場当たり的な解決ですが、EEmailを下記の部分だけ上書きしました。
PHPメール専用です。
システムのEメール構成の文字コードも"ISO-2022-JP"にしておいて下さい。
//var $charset = "ISO-2022-JP"; // Default char set: iso-8859-1 or us-ascii
// "ISO-2022-JP"の時は、エンコーディングは7bitで
var $encoding = "7bit"; // Default bit depth (8bit = non-US char sets)
//下記リストに無いと、自動的に8bitになるので、追加
var $base_charsets = array('iso-8859-1', 'us-ascii', 'ISO-2022-JP');
function from($from, $name = '')
{
if (preg_match( '/\<(.*)\>/', $from, $match))
$from = $match['1'];
if ($this->validate)
$this->validate_email($this->str_to_array($from));
if ($name != '' && substr($name, 0, 1) != '"')
{
//差出人名を日本語化
$name = mb_encode_mimeheader(mb_convert_encoding($name, $this->charset, "auto"));
}
$this->add_header('From', $name.' <'.$from.'>');
$this->add_header('Return-Path', '<'.$from.'>');
}
function reply_to($replyto, $name = '')
{
if (preg_match( '/\<(.*)\>/', $replyto, $match))
$replyto = $match['1'];
if ($this->validate)
$this->validate_email($this->str_to_array($replyto));
if ($name == '')
{
$name = $replyto;
}
if (substr($name, 0, 1) != '"')
{
//返信名を日本語化
$name = mb_encode_mimeheader(mb_convert_encoding($name, $this->charset, "auto"));
}
$this->add_header('Reply-To', $name.' <'.$replyto.'>');
$this->replyto_flag = TRUE;
}
function send_with_mail()
{
//件名と本文を日本語化
$this->subject = mb_encode_mimeheader(mb_convert_encoding($this->subject, $this->charset, "auto"));
$this->finalbody = mb_convert_encoding($this->finalbody, $this->charset, "auto");
if ($this->safe_mode == TRUE)
{
if ( ! mail($this->recipients, $this->subject, $this->finalbody, $this->header_str))
return false;
else
return true;
}
else
{
if ( ! mail($this->recipients, $this->subject, $this->finalbody, $this->header_str, "-f".$this->clean_email($this->headers['From'])))
return false;
else
return true;
}
}
本当は、モジュールかプラグインにした方がスマートなんですが、そこまでの技量が無かったので。
もっといい方法があったらお願いいたします。