ゼロと無限の間に

フリーでオープンソースなJavaScriptとかPHPとか。

ユーザ用ツール

サイト用ツール


サイドバー

何かありましたら、メールで連絡いただくか、ブログのどこかにコメント入れてくださいね ^_^

Menu

ゼロと無限の間に

はじめに

作った主なサイト

作った主な便利ツール(無料)

ログ (Blog)

php-tool-box:mail-to-todo

メールでTodo.phpにTODOを追加 - mail2todo

コメントと更新履歴はゼロと無限の間のログ » Todo.phpでどうぞ。

Todo.phpのオプションツール。メールでTODOを追加できる。
外出中なんかに携帯電話からメモ感覚でTODOを追加するために作った。

内部的にはメール用ライブラリとしてMailMan.phpを使っている。

使い方

送信先メールアドレスの@より左側がカテゴリになる。(例 “foo@exmaple.com”ならfooがカテゴリ名になる)
件名がTODOの内容になる。件名の最初に数字+スペースを入れると、その数字が優先度になる。(例 “5 ミルクを買う”)

サーバ側ではコマンドラインからこのPHPを起動して、パラメータとしてメールのファイルパスを渡す。
LinuxならqmailやPostfixからパイプで渡す。
WindowsならXMailが簡単。Java使いならApache Jamesで頑張る?

ソースコード

<?php
/**
 *	@version	0.1.1
 */
require('Todo.php');
require('MailMan.php');
 
//メールのファイルを取得
$path = $argv[1];    //php実行のパラメータとして渡される
 
//メールを解析
mb_internal_encoding(Todo::ENCODING);
$mail = MailMan::file2mail($path);
$to = explode('@', $mail->to);
 
$todo = new Todo($to[0]);
 
//カテゴリチェック
if (!$todo->isValidCat()) {
    error_log('Invalid category name! ' . $todo->cat);
    exit;
}
 
//優先度設定(優先度を指定する場合は先頭に「優先度+スペース」を付ける)
$subjectArr = explode(' ', $mail->subject, 2);
if (is_numeric($subjectArr[0])) {
    $pri = $subjectArr[0];
    $task = $subjectArr[1];
} else {
    $pri = 1;
    $task = $mail->subject;
}
 
//TODOリストに追加
file_put_contents($todo->getPath(), $pri . "\t" . $task . "\n", FILE_APPEND);
php-tool-box/mail-to-todo.txt · 最終更新: 2008/03/03 22:58 by dgbadmin