ようこそゲストさん

Qdmail - PHP::Mail Library , Quick and Detailed for Multibyte

2008/08/28(木) 2008-08-28

Qdmaiのダウンロードページはこちら
  • 2008-08-28
    • 1.0.8b
メール重要度の指定ができるようにした。priorityメソッドの追加。
version()メソッドの追加

#  非公開コメント   
  • TB-URL  http://hal456.net/qdmail/074/tb/

重要度を設定する

Qdmailでは、メールの重要度を設定することができます(3段階)。Qdmail 1.0.8b以降の機能です。

重要度設定方法

パラメータの意味は以下のとおりです。
high重要
normal普通
low低い

qd_send_mail() 方式の場合(テキストメールの例)

$option = array(
    'type'=>'text',
    'option'=>array('priority'=>'high'),
);

qd_send_mail($option , $to , $subject ,$body );

OOP , easy~メソッド 方式の場合

$mailにはQdmailのインスタンス(オブジェクト)が入っているものとします。
$mail -> priority('high');
重要度をキャンセルするには
$mail -> priority('');
現在の重要度の設定を取得するには
$return_value = $mail -> priority( null );

予備知識

メールの重要度は、各メーラーなどが独自に実装している面があり、ひとつのヘッダーを設定すればそれでOKとはいきません。Qdmailでは、4つのヘッダーを設定しています。たぶんこれでほとんどのメーラーは大丈夫だと思います。
設定しているヘッダー
X-Priority135
Priorityurgentnormalnon-urgent
X-MsMail-PriotiryHighNormalLow
ImportanceHighNormalLow
priorityメソッドは addHeader()メソッドを利用して、これら4つのヘッダーを設定しているだけです。

参考URL

メールの重要度を設定する-Shin x blog

#  非公開コメント   
  • TB-URL  http://hal456.net/qdmail/068/tb/

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

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

すると。。。。

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

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


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

このサービスを実現するための基礎知識

さくらインターネットでリアルタイムメール処理

参考にさせていただいたサイト

ケータイHTMLメールについて調べた-おぬにっき
デコメテンプレートのコンパクトなまとめ-株式会社シンメトリック公式ブログ - 携帯開発から生まれる技術情報
デコメール関連ツール/サービス-Utilz

#  非公開コメント   
  • TB-URL  http://hal456.net/qdmail/071/tb/

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

デコメテンプレート変換はじめてガイド  デコメテンプレート変換サービス
にて、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
);

#  非公開コメント   
  • TB-URL  http://hal456.net/qdmail/070/tb/

デコメールまとめ

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

Qdmailの特徴(デコメ関連)

Qdmail使用例

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

予備知識

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

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

# あず 2009年11月27日(金) 午前6時06分

デコメの送信に苦戦してましたがQdmailを使わせて頂いたら簡単に実装できました。
深く研究されていて、真似出来ないと思いました。。。

ちなみにto[]で複数のアドレスに送る場合、何件くらいまで耐えられるかお分かりになりますでしょうか?
2000件~4000件程度に送る予定なので少し不安になりました。

なんにせよ、最高のライブラリです!

# nakano 2012年05月17日(木) 午前11時00分

Qdmailを使用して、PCからau携帯、スマホに絵文字コードを送信するシステムを構築しました。
以下のサイトにて技術を公開しております。
一部のサイトにauには絵文字を送信できない記述を見つけますが、そんなことはありません。
Qdmailのソースを解析できない低レベルのエンジニアの言い訳だと思います。

http://www.ijtc.co.jp/customise2.htm


#  非公開コメント   
  • TB-URL  http://hal456.net/qdmail/069/tb/