▼ デコメテンプレート作成(変換)機能
QdmailReceiverとQdmail(1.07b以降)を組み合わせると、ドコモのテンプレートからauのテンプレート等、各キャリアに合わせたテンプレートに変換することができます。その上に、テンプレートではなく、デコメそのものからデコメテンプレートを抽出したり、MHTLメール(インラインHTML)から、各キャリアのデコメのテンプレートを作成することができます。
変換先
それでもって、Qdmailのメール作成機能を援用して、各キャリアに適合したデコメテンプレートを作成します。
qd_mail_receiver.phpをインクルードパスが通っているディレクトリに配置しておいてください。Qdmailが自動的に読み込みます。自動読み込みがうまくいかない場合は、
$file には、デコメテンプレートのパス&ファイル名が入っているものとします。
第1引数は以下の選択肢があります。
$contentの中身は、どんなキャリアのテンプレートでも大丈夫です。
テンプレートでなくても、メールそのものでも大丈夫です。その場合は、ヘッダーも含めたメール全データをぶち込んで下さい。
変換バリエーション
変換元Docomo,au,Softbankのデコメテンプレート。インラインHTMLメール(MHTML)。通常のHTMLメール。テキストメール↓
変換先
Docomo,au,Softbankの各デコメテンプレート
解説
内部的には、QdmailReceiverを利用して、変換元のメールをデコードして、Qdmail形式の配列に変換します。それでもって、Qdmailのメール作成機能を援用して、各キャリアに適合したデコメテンプレートを作成します。
サンプルコード
$mailには、Qdmailのインスタンスが入っているものとします。qd_mail_receiver.phpをインクルードパスが通っているディレクトリに配置しておいてください。Qdmailが自動的に読み込みます。自動読み込みがうまくいかない場合は、
include('qd_mail_receiver.php');として明示的に読み込んで下さい。
$file には、デコメテンプレートのパス&ファイル名が入っているものとします。
サンプルコード(ドコモテンプレートからauテンプレートへの変換)
$file = 'templatefile.dmt'; $mail = & new Qdmail(); $content = file_get_contents($file); $au_template = $mail -> makeDecoTemplate('TPL_AU',$content);PHP5では、newの前の & は必要ありません。
第1引数は以下の選択肢があります。
'TPL_DC' | ドコモ用テンプレート |
'TPL_AU' | au用テンプレート |
'TPL_SB' | SoftbankMobile用テンプレート |
テンプレートでなくても、メールそのものでも大丈夫です。その場合は、ヘッダーも含めたメール全データをぶち込んで下さい。
# ぐみ 2008年12月10日(水) 深夜1時07分
http://kikky.net/pc/mk_decomail.html
こんなの見つけました
# デコ 2009年04月30日(木) 午後1時45分
作成はできないのでしょうか。たとえば受信したメールをテンプレート化するような。
$content = '';
$fp=fopen("php://stdin",'r') or die('File Open Error');
while( !feof($fp) ){
$content .= fgets( $fp );
}
$mail = new Qdmail();
$mail = $mail->getInstance();
$filename="tpl.dmt";
$fp=fopen($filename,"w+");
fwrite($fp, $mail -> makeDecoTemplate('TPL_DC',$content));
としたところ、HTML部分がまったく入らず、テンプレートを作成できませんでした。
何かがおかしいのでしょうか。
# あ 2009年09月29日(火) 午後5時48分
あああ