ウェブアンケートの需要って

2006/10/26 | その他

うちの手持ちで、ウェブアンケートを簡単に実施できるアプリがある。今、クライアントさんに実際に使っていただいているのだが、実際のところウェブアンケートの需要ってあるんだろうか。少し疑問。
そこで機能を少し削ったものを無償で公開してみることにした。このアプリを使うとウェブのフォームに答えていくだけで、簡単にアンケートが実施できて、回答の回収もCSV形式などで取得できる。
今、最後の微調整をしているところだけど、ウェブを完全に作りかえて、とりあえず、ついさっきリニューアルオープンさせた。もし興味のある人がいたら覗いてください。んで、オープンしたら使ってみてください。
基本タダなんで、気軽に使えると思うので。

無料アンケートASPサービス

メールのデコード(その2)

2006/10/23 | その他PEAR全般

結論から言うとメールのデコードは上手くできた。
デコードに際して2つのPEARファイルが必要になることは既に書いたが、.qmailからプログラムを呼び出したり、なんだかんだの関係で、それぞれを個々にメインファイルから呼び出すことにした(mimeDecode.phpのrequire_once文をコメントアウトした)。
以下が実際に記述したプログラム。
———————————————————–
<?php
 require_once(‘./lib/PEAR.php’);
 require_once(‘./lib/mimeDecode.php’);

 //標準入力からメール本体を抽出
 $source=”;
 $stdin=@fopen("php://stdin","r");
 while(!feof($stdin)){
  $source.=fgets($stdin,4096);
 }
 fclose($stdin);
 
 //メールをパースする
 $decoder = new Mail_mimeDecode($source);
 $params[‘include_bodies’] = true; //ボディを解析する
 $params[‘decode_bodies’] = true; //ボディをコード変換する
 $params[‘decode_headers’] = true; //ヘッダをコード変換する
 $structure = $decoder->decode($params);
?>

ここで$structureは構造体(オブジェクト)として返される(といってもまぁ配列のようにも扱えるわけだが)。このオブジェクトからは以下の値をもっている。

$structure->headers
 ヘッダ情報(配列で格納されている)
$structure->ctype_primary
 メールのコンテントタイプ(スラッシュより前)
$structure->ctype_secondary
 メールのコンテントタイプ(スラッシュより後)
$structure->body
 メールのコンテントタイプがmultipartでない場合のメール本体
$structure->parts
 メールのコンテントタイプがmultipartな場合のメール本体(構造体)

outlookなんかだとmultipart×multipartみたいな書式のメールになることがあるので、メール本体の処理を忠実におこなおうとすると再帰的処理をかけてやる必要がある。今回はoutlook無視なので、そこまではやらないつもりだけど。

メールのデコード

2006/10/22 | その他

メール操作ネタの続き。
メールをデコードするにはPEARのMail/mimeDecodeを使う。
メール受信のトリガーから起動させる関係で、インクルードパスの設定等々が上手くいかないときは、元のファイルで直接必要なファイルをインストールするとして、以下のファイルが必要。

・PEAR.php
・Mail/mimeDecode.php

「Mail/mimeDecode.php」はMail_Mimeパッケージに含まれている。
これだけでデコードできるはず。あとでチェックしてみよう。

メール到達をトリガーとして・・・(まとめ)

2006/10/22 | その他

メールが届いたら、環境変数に送り主のメールアドレスなどをセットしてプログラムに引き渡すことができる、という点については昨日書いた。
しかし本文は引き渡せないので、どうしたものかと思案していたのだが、結局渡せることがわかった。いわゆる標準入出力を使う。これですべて解決。
まとめると以下のようになる。

(1) .qmailファイルでメールがついたらプログラムを起動するよう設定
 | /usr/bin/php /hoge/hoge/hoge.php
(2) 引き渡されたプログラム内でメール本文を標準入力から読み取る
 $body=”;
 $stdin=@fopen(“php://stdin”,”r”);
 while(!feof($stdin)){
  $body.=fgets($stdin,4096);
 }
(3) その他環境変数からいろいろ使用する。
 $_ENV[‘SENDER’]とか。

うんうん。ちょっとしたアプリがかけそう。調べてよかった。

qmail連携で環境変数・・・

2006/10/21 | その他

携帯などで「空メールを送ったら自動的にプログラムが起動して・・・」という機能を実装したくなった(「したくなった」という気分自体異常だけどね)。
使っているメールサーバはqmail。よって.qmailファイルでプログラムを起動するようにするとそれで事足りる。当然phpのプログラムをキックするわけだが、phpのプログラム中で便利に使える環境変数があるのでまとめておく。

$_ENV[‘SENDER’] 送信者アドレス
$_ENV[‘RECIPIENT’] 受信者アドレス

他にもいろいろ。詳しくはここ

むむ。本文は環境変数に読み込まれないのかも。


守谷市(まちの情報ポータル) 無料アンケートレンタルjpForm.net