PHPで機種依存文字をメール送信する時

2010年4月30日

PHPで良く使われるメール送信関数は

mb_send_mail

だと思うが、これは機種依存文字が入ると全て?に変換してしまう。

クライアントによってはこれを良しとしないところもあると思う。そんな時は
qdmailを利用すれば良い。

使い方は

qdmail.phpをライブラリとしてパスが通っているところに入れて、
例)Zend Frameworkならば、Zendというディレクトリに対して
pluginのパスを通していると思う。
ここと同じ階層においてもいいし、Zendのディレクトリ内にぶち込んでもいい。

自分は

Plugins/Zend
Plugins/Qdmail/qdmail.php

という構成で設置した。後は

requre_once 'Qdmail/qdmail.php’;

と読み込むだけ。

$mail = new Qdmail();
$mail->charsetBody('utf-8′,base64’);
$mail->kana(true);
$mail->text(本文);
$mail->from(fromのアドレス,配信元日本語名);
$mail->to(toのアドレス,配信先日本語名);
$mail->subject(件名);
$mail->send();

というように送る。最初の2つ

$mail->charsetBody('utf-8′,base64’);
$mail->kana(true);

は、本文をUTF-8、Base64にエンコード、半角カナも送ります。
という指示。