[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 2chのread.cgiへ]
Update time : 04/07 07:33 / Filesize : 233 KB / Number-of Response : 749
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

高機能フリーメーラー QMAIL3 part3



1 名前:名無しさん@お腹いっぱい。 [2007/01/19(金) 12:20:12 ID:RA7zjXS70]
Windows および Windows CE で動作するメーラー。
開発は QMAIL2 から QMAIL3 へ移行。

設定などややこしい部分もあるのでドキュメントは必ず熟読すべし。
質問はそれからのほうがスムーズです…作者メモやMLログも参考にしてください。
QMAIL3は MTA の qmail とは関係ありません。

■QMAIL3公式
q3.snak.org/wiki/

■作者メモ
snak.tdiary.net/

■バグ報告
q3.snak.org/bts/guest.cgi?project=Q3&action=top

■コメントはこちら
www.lingr.com/room/bJETSwHp1e5

■前スレ
part2 pc9.2ch.net/test/read.cgi/software/1154863783/
part1 pc7.2ch.net/test/read.cgi/software/1037582559/

※関連情報は>>2-10あたりを参考。

367 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/29(日) 13:28:45 ID:RPVfs0TI0]
>363がようやく完成。hyperqm.exeをJScriptに移植した。
自分で使い慣れた検索式に変えるのに便利そうなんでさらしておきます。

hyperqm.jsというファイル名で以下保存--------
// - hyperqm.exeをちょっぴり使いやすくするツール -
// hyperqm.exe(freemind.s57.xrea.com/index.html)のソースをJScriptに移植したもの。
// hyperqm.exeと同じフォルダにhyperqm.jsというファイル名でソースを保存して使ってください。
// QMAIL3検索オプションでカスタムにして検索のところを「cscript hyperqm.js "$index" "$condition" $encoding」とする。
// 検索式もhyperqm.exeと同じでそれに加えて下記が可能。
// 1) 属性のOR:「from,cc:hoge,foo」とすれば「hoge」または「foo」が「fromまたはcc」にあるメールを検索。
// →「"from,cc:hoge foo"」と「"」で括って検索対象を「半角空白」で区切っても可。
// 2) 属性の否定:「hoge -from:foo」とすれば、本文に「hoge」を含み「from」が「foo」を含まないメールを検索。

368 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/29(日) 13:29:26 ID:RPVfs0TI0]
>>367の続き
---以下続き---

main();
function main(){
var WshShell, ARGV, index, char_code, attr_str, search_phrase, objExecl, parser;
var WshShell = new ActiveXObject('WScript.Shell');
ARGV = WScript.Arguments;
index = ARGV(0);
char_code = ARGV(2);
var parser = new StringParser(ARGV(1));
attr_str = parser.attr_str;
search_phrase = parser.search_phrase;
var objExec = WshShell.Exec('estcmd search -nl -ic ' + char_code + ' -vu -aux 99 -max -1' + attr_str + ' "' + index + '" "' + search_phrase + '"');
while(!objExec.StdOut.AtEndOfStream) {
WScript.StdOut.WriteLine(objExec.StdOut.ReadLine());
}
}




369 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/29(日) 13:30:26 ID:RPVfs0TI0]
>>368の続き
---以下続き---
function StringParser(arg){
var inputted_str, search_phrase;
inputted_str = arg
search_phrase = '';
var attribute_condition_ary = new Array();
var r, str;
while(r=inputted_str.match(/\"(.*?)\"/)){
str = inputted_str.slice(r.index + 1, r.lastIndex - 1);
if(str.indexOf(':') != -1){
attribute_condition_ary.push(attribute(str));
}else{
if(search_phrase.length > 0){
search_phrase += ' AND ';
}
search_phrase += str;
}
inputted_str = inputted_str.slice(0,r.index) + inputted_str.slice(r.lastIndex);
}



370 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/29(日) 13:31:23 ID:RPVfs0TI0]
>>369の続き
---以下続き---
var strs, key;
strs = inputted_str.split(/ | /);
for(key in strs){
str = strs[key];
if(!str){continue;}
if(str.indexOf(':') != -1){
attribute_condition_ary.push(attribute(str));
continue;
}
if(search_phrase.length > 0){
if(str == 'OR'){
search_phrase += ' OR';
continue;
}else if(search_phrase.match(/.+ OR$/)){
search_phrase += ' ';
}else if(str.charAt(0) == '-'){
search_phrase += ' ANDNOT ';
str = str.slice(1);
}else{
search_phrase += ' AND ';
}
}
search_phrase += str;
}


371 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/29(日) 13:32:04 ID:RPVfs0TI0]
>>370の続き
---以下続く---
if(search_phrase.length == 0){
search_phrase = '[UVSET]';
}

var attr_str;
attr_str = '';
if(attribute_condition_ary && attribute_condition_ary.length > 0){
for(key in attribute_condition_ary){
attr_str += ' -attr "' + attribute_condition_ary[key] + '"';
}
}
this.source = arg;
this.attr_str = attr_str;
this.search_phrase = search_phrase;
}



372 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/29(日) 13:32:57 ID:RPVfs0TI0]
>>371の続き
---以下続く---

function attribute(str){
var str_ary;
str_ary = str.split(':');
if(!str_ary){return}
if(str_ary[0] == 'after'){
return "@cdate NUMGE " + Math.round(Date.parse(str_ary[1])/1000);
}else if(str_ary[0] == 'before'){
return "@cdate NUMLT " + (Math.round(Date.parse(str_ary[1])/1000) + 60*60*24);
}else if(str_ary[1].match(/,| |\|/)){
return str_ary[0] + " ISTRRX " + str_ary[1].replace(/,| |\|/g,'|');
}else if(str_ary[0].charAt(0) == '-'){
return str_ary[0].slice(1) + " !ISTRINC " + str_ary[1];
}else{
return str_ary[0] + " ISTRINC " + str_ary[1];
}
}
---上記で終わり---







[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<233KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef