デコメテンプレート変換サービス

2008/08/28 未分類 spok
下記のQRコードを読み取って、携帯電話からメールを送ってみて下さい。
その際には、ご自分のPCメールアドレスにCCしてください(しなくてもいいけど)。

すると。。。。

携帯アドレスとCcアドレスに、その送ったデコメが、ドコモ(Docomo)、au、ソフトバンク(Softbank)の3つのキャリアのデコメテンプレートに変換され、その変換されたファイルが添付されたメールが送られてくるはずです。

お試しあれ。
decotest987.jpg

うまく読み取れない方は、decotest987  あっとまーく hal456 ドット netまでデコメを送ってみて下さい。


ちなみに、デコメでなくても、普通のメールを送っても、デコメテンプレートになって返ってきます。

続きを読む

デコメテンプレート変換プログラムサンプル

2008/08/28 未分類 spok
デコメテンプレート変換はじめてガイド  デコメテンプレート変換サービス
にて、Qdmail + QdReceiverを利用した、デコメテンプレ3種盛り自動作成サービスを紹介しています。
ここでは、そのプログラムをご紹介しましょう。

レンタルサーバー:さくらインターネット スタンダード
なお、受信したメールでリアルタイムでPHPプログラムを動かすには、さくらインターネットでリアルタイムメール処理をご参照下さい。
#!/usr/local/php-5.2.6/bin/php-cgi

<?php

include('inc/qdmail.php');
include('inc/qdmail_receiver.php');

//
//標準入力からメール内容の取り込み
//
$content = '';
$fp=fopen("php://stdin",'r') or die('File Open Error');
 while( !feof($fp) ){
    $content .= fgets( $fp );
 }
//
//メールのデコード(Qdreceiver)
//
$DECODE = QdmailReceiver::start('direct',$content);
$from = $DECODE -> header(array('from','mail'));
$subject_summary = mb_substr(
    $DECODE -> header( array('subject','name') ) , 0 , 10
);

if(empty($subject_summary)){
    $subject_summary = 'Qdmail';
}else{
    $subject_summary .= 'tpl';
}

$cc = $DECODE -> header(array('cc','mail'));

//
//デコメテンプレートへの変換(3キャリア)
//
$kinds = array('TPL_DC','TPL_AU','TPL_SB');
$carrier = array(
    'TPL_DC'=>'Docomo',
    'TPL_AU'=>'au',
    'TPL_SB'=>'SoftBankMobile'
);
$mime = array(
    'TPL_DC'=>'application/x-decomail-template',
    'TPL_AU'=>'application/x-kddi-htmlmail',
    'TPL_SB'=>'application/x-htmlmail-template'
);
$kakuchou = array('TPL_DC'=>'dmt','TPL_AU'=>'khm','TPL_SB'=>'hmt');

$ct = 0;
$mail = Qdmail::getInstance();

foreach($kinds as $kind){
    $attach[$ct]['DIRECT'] = $mail -> makeDecoTemplate($kind,$content);
    $attach[$ct]['PATH'] = $subject_summary.'_'.$carrier[$kind].'.'.$kakuchou[$kind];
    $attach[$ct]['MIME_TYPE'] = $mime[$kind];
    $ct++;
}
//
//結果の送信
//
$add_header['From']='*****@*****.net';
$add_header['Reply-To']='****@*****.jp';

$to = array();
if(!empty($from)){
    $to[]=array($from);
}
if(!empty($cc)){
    $to[]=array($cc);
}

// ループ防止
foreach($to as $key => $ad){
    if( false !== strpos($ad[0],'@****.****') ){
        unset($to[$key]);
    }
}


if(0===count($to)){
    die('Illegal Mail');
}


$mail -> reset();//いったんQdmailのすべてをリセット(念のため)
$body=<<<EOF
テンプレートをお届けします
役に立ったと思われたら、ぜひネット上でご紹介ください。

auテンプレートは、クセがあるので気をつけてください。
お気づきの点、ご意見、ご感想を、ぜひ以下のサイトまでお寄せ下さい。

Spok
http://hal456.net/
http://hal456.net/qdmail/decomail_base
http://www.cpa-lab.com/tech/
EOF;

$fg=qd_send_mail(
    'text',
    $to,
    'デコメ3種テンプレート(試験運用)',
    $body,
    $add_header,
    $attach
);

デコメールまとめ

2008/08/28 未分類 spok
Qdmailのデコメールに関する情報をまとめました。
Qdmailとは、PHPのマルチバイト環境(特に日本語)にて、「文字化けしない」「簡単に"デコメ(デコメール)"やHTMLメール等の電子メールを送信することができる」メールクラスライブラリです。文字化け完全制覇を目指しています。
CakePHPのコンポーネントとしても動作可能です。

Qdmailの特徴(デコメ関連)

Qdmail使用例

Qdmailを使ったデコメテンプレート変換サービス(作者のサイトです)
サンプルコード

予備知識

デコメは、大きく分けてドコモ系、au系、ソフトバンク系にわかれます。ディズニー携帯、イーモバイル、Willcomは、ソフトバンクとほぼ同じです。
Qdmailはこれらの違いを吸収し、どのキャリアに送るのでも、同じソースコードで送信することができます。

参考:デコメール携帯4社MIMEマルチパート比較

デコメテンプレートで送信する。端末シミュレート

2008/08/27 未分類 spok
Qdmail 1.0.7b以降ではQdmailReceiverと組み合わせることで、デコメテンプレート形式のデータをデコメとして送信することができます。つまり、携帯端末のシミュレートをすることができます。自分で作成したデコメテンプレートが正常にデコードされるかどうのテスト等に使えます。もしくは、ネットで拾ったデコメテンプレートがどんなものかを自分宛に送信してみるのもよいでしょう。

サンプルコード

qd_mail_receiver.phpは、インクルードパスの通った場所に配置しておいてください。Qdmailが自動で読み込みます。もし、自動読み込みがうまく行かない場合には、明示的に、qd_mail_receiver.phpファイルをインクルードしてください。
サンプル
$to ="address@exmaple.com";
$template_filename = 'docomo4_0.dmt';
$template = file_get_contents($template_filename);
qd_send_mail('DecoTemplate',$to,'テンプレートテスト',$template,'from@example.com');
これでドコモのデコメテンプレートの内容をいったんデコードした上で、address@exmaple.comにデコメールを送信します。
qd_send_mail('DecoTemplate',$to,'テンプレートテスト',$template,'from@example.com');
の代わりに
$mail -> easyDecoTemplate($to,'テンプレートテスト',$template,'from@example.com');
でも、構いません。

デコメテンプレート作成(変換)機能

2008/08/27 未分類 spok
QdmailReceiverとQdmail(1.07b以降)を組み合わせると、ドコモのテンプレートからauのテンプレート等、各キャリアに合わせたテンプレートに変換することができます。その上に、テンプレートではなく、デコメそのものからデコメテンプレートを抽出したり、MHTLメール(インラインHTML)から、各キャリアのデコメのテンプレートを作成することができます。

変換バリエーション

変換元
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用テンプレート
$contentの中身は、どんなキャリアのテンプレートでも大丈夫です。
テンプレートでなくても、メールそのものでも大丈夫です。その場合は、ヘッダーも含めたメール全データをぶち込んで下さい。

この機能を使ったサービス例

デコメ→3種テンプレート変換