「2ch過去ログ」の編集履歴(バックアップ)一覧に戻る
2ch過去ログ - (2007/10/11 (木) 23:59:06) のソース
&topicpath(top=トップ) **現在のスレ 高機能フリーメーラー QMAIL3 part3 http://pc11.2ch.net/test/read.cgi/software/1169176812/ **過去ログ http://pc9.2ch.net/test/read.cgi/software/1154863783/ http://pc7.2ch.net/test/read.cgi/software/1037582559/ **2ch QMAIL3スレ用 テンプレ -新スレのテンプレが実質的な情報サイトとして機能している。 -QMAIL3スレが立っているsoftware板の設定は[[こちら>http://pc11.2ch.net/software/SETTING.TXT]]。書き込み一覧表示で省略されずに表示されるのは16行まで(BBS_LINE_NUMBER=16)、1書き込みでは最大32行まで投稿できる。 #contents(fromhere=true) *** 概要 Windows および Windows CE で動作するメーラー。 開発は QMAIL2 から QMAIL3 へ移行。 設定などややこしい部分もあるのでドキュメントは必ず熟読すべし。 質問はそれからのほうがスムーズです…作者メモやMLログも参考にしてください。 QMAIL3は MTA の qmail とは関係ありません。 ■QMAIL3公式 http://q3.snak.org/wiki/ ■作者メモ http://snak.tdiary.net/ ■バグ報告 http://q3.snak.org/bts/guest.cgi?project=Q3&action=top ■コメントはこちら http://www.lingr.com/room/bJETSwHp1e5 ■前スレ part2 http://pc9.2ch.net/test/read.cgi/software/1154863783/ part1 http://pc7.2ch.net/test/read.cgi/software/1037582559/ ※関連情報は>>2-10あたりを参考。 *** 特徴 ■特徴 ・POP3, SMTP, IMAP4, NNTP, RSS, Atomのサポート ・各種認証(APOP, SMTP認証)のサポート ・SSL/STARTTLSのサポート ・S/MIMEのサポート ・PGP/GnuPGのサポート(Windows版のみ) ・HTMLメール表示機能(WindowsとWindows Mobile 5.0, Pocket PC 2002, 2003, 2003SE, sigmarion III版のみ) ・マクロを使用した振り分け・色づけ・フィルタ機能 ・テンプレートを使用したメッセージの表示・編集機能 ・namazu, Hyper Estraierと連動した全文検索機能(Windows版のみ) ・学習型スパムフィルタ(Windows版のみ) ・カスタマイズ可能な画面表示・メニュー・キーアサイン・ツールバー *** 全文検索 HyperEstraier の導入方法 ■全文検索 HyperEstraier の導入方法 1.HyperEstraier を適当なフォルダに展開、そこに PATH を通す。 2.[オプション]-[検索]-[全文検索]で HyperEstraier を選択。 3.[検索]-[全文検索]-[インデックスの更新]を実行。 コレで HyperEstraier による全文検索が可能に。 検索対象はインデックスに含まれてるメールだけなのでインデックス更新は適度に実行すること。 タスクスケジューラで定期更新とか。 HyperEstraier http://hyperestraier.sourceforge.net/ *** OEからの移行方法 ■OEからの移行方法 1.OEのメールをUNIX mbox 形式に変換。 2.その後文字コードをShift-JISに変更してからインポートすればOK。 変換ソフト http://www.tietew.net/soft/OE2/ *** QMAIL3 をデフォルトのメーラにしたい ■QMAIL3 をデフォルトのメーラにしたい 素直にインストーラ版を使ってください Zip 版で自力で設定したいなら WindowsFAQ などのサイトを参考。 その上で「フォルダオプション」の「ファイルタイプ」タブ以下から下記のように設定。 拡張子:利用不可 ファイルタイプ:URL : MailTo プロトコル アクション:open アクションを実行するアプリケーション:C:\QMAIL3\q3u.exe -s "%1" *** 直ぐ送信したい、自動巡回・迷惑メールフィルタが機能しない ■直ぐ送信したい FileSendNowってアクションがあるんで、toolbars.xml に <button image="15" action="FileSendNow" text="直ぐ送信"/> とかすればOK ■自動巡回しません メニューバー → ツール → 自動巡回にポチってる? ■迷惑メールが機能しません クリーンなメールが100通以上学習されていない場合、 スパムフィルタが機能しないようになっています。 *** 公式ドキュメント QMAIL3ドキュメント http://q3.snak.org/doc/ QMAIL2ドキュメント http://www.snak.org/software/qmail2/doc/manual/ *** 返信メールの名前に自動で"様"を付けるテンプレート ■返信メールの名前に自動で"様"を付けるテンプレートby前スレ881&その他の漢たち reply.templateの中を下記に変更 元) To: {@If(@Exist('Reply-To'), Reply-To, From)} 変更後) To: {@Progn(@If(@Exist('Reply-To'), @Set('to',Reply-To), @Set('to',From)),@Set('to',@RegexReplace($to,/["']/,'',@True())),@RegexReplace($to,/(?! 様) </,' 様 <',@True()))} reply_all.templateを下記に変更(二箇所) 元) 1) $from, 2) @Concat('Cc: ', $val, '\n'), 変更後) 1) @Progn(@Set('from',@RegexReplace($from,/["']/,'',@True())),@RegexReplace($from,/(?! 様) </,' 様 <',@True())), 2) @Progn(@Set('val',@RegexReplace($val,/["']/,'',@True())),@RegexReplace(@Concat('Cc: ', $val, '\n'),/(?! 様) </,' 様 <',@True())), *** BCC付けると送信済みメッセージが二重になる ■ BCC付けると送信済みメッセージが二重になる 送信済みフォルダのプロパティで送信済みフラグのチェックを外し、 ゴミ箱のプロパティで送信済みフラグのチェックを入れると、 送信済みメッセージはゴミ箱に入ります。 *** BCCの付加をアカウント毎にする・しない、を設定したい。 ■BCCの付加をアカウント毎にする・しない、を設定したい。 設定はQMAILを終了してから行うこと。 [変更点] ・account.xml Globalセクションに追加→<key name="Bcc">1</key> ※ キーを作らなければBCCにならない。ならないようにキーを作る場合は値を0にする。 ・reply_all.template、reply.template @Equal(@Profile('', 'Global', 'Bcc', '1'), '0'), の前に下記を追加↓ @Equal(@Profile(@Concat('accounts/', @Account(), '/account.xml'), 'Global', 'Bcc','0'), '1'), @Concat('Bcc: ', @I(@Account(), X-QMAIL-SubAccount), '\n'), ・new.template、forward.template @Set('bcc', @Equal(@Profile('', 'Global', 'Bcc', '1'), '1')), を下記に入れ替え↓ @Set('bcc', @Or(@Equal(@Profile('', 'Global', 'Bcc', '1'), '1'),@Equal(@Profile(@Concat('accounts/', @Account(), '/account.xml'), 'Global', 'Bcc','0'), '1'))), QMAILの設定にあるBCC付加オプションはBCCつけないにしてから、上記を 必要なACCOUNTに対してKeyを付け加えればオケ。 *** --( template )-- >>11の続き この設定法をする場合、「オプション」-「その他2」のBCC付加のチェックははずしておく。 ここをチェックすると、すべてのアカウントでBCC付加になります。 *** フォルダー内の未読メールを一気に既読にしたい ■フォルダー内の未読メールを一気に既読にしたい フォルダ内のすべてのメールを既読にするには以下の1行を menus.xmlの<menu name="folder">内に追加。 ※Ver.2.9.28以降で有効 <menuitem text="すべて既読" action="MessageMacro" param="@Seen(@True())" /> フォルダビューでフォルダ選択して右クリックして「すべて既読」をぽちっとする。 *** 他メーラーからアドレスをインポートしたい ■他メーラーからアドレスをインポートしたいんですが? アドレス帳のデータはxmlなので、自分でスクリプト書いて移行してください。 ■そんなスキル持ってませんが? QMAIL3では送信済みメッセージの宛先・ccをデフォルトでは過去10アドレス 覚えています。qmail.xmlのRecentAddressセクションのmaxで覚えさせる メール数が変えられるので100なり200なりにすればアドレス帳なくても 覚えているアドレス直打ちしていけば、アドレスの自動補完ができます。 また、Outlook(OL)やOutlook Express(OE)などのアドレス帳を参照する機能も あるのでオプションで設定しましょう。QMAIL3のアドレス帳はしょぼいので OL、OEのアドレス帳を使ったほうが、他ソフトでも使えて便利かもしれません。 ■OL OEのアドレス帳の参照設定しても、アドレス帳開くと空白ですが? メール作成画面を開いてからアドレス帳を開くとアドレスが出てきます。 メイン画面からアドレス帳を開くと、なぜかアドレス参照をしてくれません。 作者は近いうちに、メイン画面からのアドレス帳起動時にも、アドレス参照を するとメモに書いているので、気長に待ちましょう *** その他 ■QMAIL3でHotmailは受信できますか? 単体ではできません。 ■マウスクリックで、フラグのon/offしたいんだけど? マウスでは無理。 以下をtoolbars.xmlのmainframeに追記すればフラグON/OFFボタンができます <button image="24" action="MessageMacro" text="マーク" param="@If(@Marked(), @Marked(@False()), @Marked(@True()))"/> ■いろいろ設定をいじってんだけどバージョンアップ毎に書き換えるの面倒だよ! どうもうまい方法はないようで、多くの人は手書きでやってるみたいです。 変更が必要な設定ファイルはインストーラバージョンでバージョンアップすれば 元の設定ファイルがbakファイルとして保存されるから、それ見て修正。 *** HTMLのタグを取るテンプレート ■HTMLのタグを取るテンプレートってないの? @Bodyを表示する部分を下記に変更 --------------------------------- {@If( @RegexMatch(@Body('',1), /<HTML/i), @Progn( @Set('x',@Body('',1)), @While( @RegexMatch($x,/<PRE>((?:.|\n)+?\n(?:.|\n)+?)<\/PRE>/i), @Progn( @Set('dum',$_1), @Set('x',@RegexReplace($dum,/\n/,'<BR>',@True())), @RegexReplace($x,/<PRE>((?:.|\n)+?\n(?:.|\n)+?)<\/PRE>/i,$dum), ) ), @Set('x',@RegexReplace($x, /<DIV[^>]*>(?!\n)/i, '¶', @True())), @Set('x',@RegexReplace($x, /<DIV[^>]*>/i, '', @True())), @Set('x',@RegexReplace($x, /\n/, ' ', @True())), @If(@RegexMatch($x,/<BODY/i), @Progn( @Set('x',@RegexReplace($x, /(.*<BODY.*?>)(.*)/i, '$2', @True())), @Set('x',@RegexReplace($x, /(<\/BODY>.*)(<\/BODY>)/i, '$2', @True())) ), @Set('x',@Concat($x,'\n</BODY></HTML>')) ), @Set('x',@RegexReplace($x, /<BR>/i, '¶', @True())), @Set('x',@RegexReplace($x, /(<P[^>]*margin-bottom:1[0-9][^>]*>(?:(?!<\/P>).)*<\/P>)/i, '$0¶', @True())), @Set('x',@RegexReplace($x, /<P[^>]*class=mso[^>]*>/i, '¶', @True())), @Set('x',@RegexReplace($x, /<P[^>]*>/i, '¶¶', @True())), *** --( template )-- >>17の続き @Set('x',@RegexReplace($x, /\r|\n/, '', @True())), @Set('x',@RegexReplace($x, /<HEAD>.*<\/HEAD>/i, '', @True())), @Set('x',@RegexReplace($x, /<HR[^>]*>/i, '¶∬¶', @True())), @Set('x',@RegexReplace($x, /<[^>]*>/, '', @True())), @Set('x',@RegexReplace($x, /<|</, '<', @True())), @Set('x',@RegexReplace($x, />|>/, '>', @True())), @Set('x',@RegexReplace($x, /&|&/, '&', @True())), @Set('x',@RegexReplace($x, /"|"/, '"', @True())), @Set('x',@RegexReplace($x, / | /, ' ', @True())), @Set('x',@RegexReplace($x, /’/, '\'', @True())), @Set('x',@RegexReplace($x, /¶[\s|¶]+¶/, '¶¶', @True())), @Set('x',@RegexReplace($x, /¶+∬¶+/, '\n\n----------------------------------------------------------------------\n', @True())), @Set('x',@RegexReplace($x, /\s+¶/, '¶', @True())), @Set('x',@RegexReplace($x, /¶¶¶+/, '¶¶', @True())), @Set('x',@RegexReplace($x, /¶/, '\n', @True())), @If(@RegexMatch($x, /&#\d{{2,6}};/), @Set('x',@Script('result.value =arguments(0).replace(/&#(\\d{{2,6}})\;/g,function($0,$1){{return(String.fromCharCode($1));}})','JScript',$x)), @True() ), @Concat($x) ), @Body(@Profile('', 'Global', 'Quote', '> '), 1) ) } *** フォルダーの並び順を変えたい ■フォルダーの並び順を変えたいんですが? 設定をいくらいじってもできません。自動ソートされる仕様です。 フォルダー名の前に数字を書くとか、アンダーバー _ 、半角スペース、 !マークにしておくとかするしかありません。 *** POP3でローカルで削除したメールをサーバーでも削除するのには? ■POP3でローカルで削除したメールをサーバーでも削除するのには? http://snak.tdiary.net/20060619.html#p01のアクティブ振り分け機能を使う。 <ruleSet account="hoge" folder="ゴミ箱"> <rule match="@True()" use="manual auto active"> <apply macro="@Deleted(@True())"></apply> </rule> </ruleSet> *** アドレスを標準ブラウザ以外で開く方法を教えて下さい。 ■アドレスを標準ブラウザ以外で開く方法を教えて下さい。 アドレスを選択してからスクリプト実行するしか方法はないです。 ---Browser.js---- var browser = "iexplore.exe"; //var browser = "opera.exe"; //var browser = "firefox.exe"; //var browser = "Netscp.exe"; actionTarget.invokeAction("EditCopy"); var macro = macroParser.parse("@Clipboard()"); var url = macro.evaluate(application.nothing, application.nothing); var shell = new ActiveXObject("WScript.Shell"); shell.Run(browser + " " + url); ---------------------- これでできますな。 起動したいブラウザのコメント(//)はずしてください。 上記ではIEが起動してます。 *** インポート二回しちった。重複メールを削除したいんですが? ■インポート二回しちった。重複メールを削除したいんですが? 下記のテンプレートで。 create_CutDuplicatedMessage.template---------------------------- 〓重複メール削除〓 Folder Name: {@Folder()} { @Progn( @Set('n', 0, :GLOBAL), @ForEach( @Messages(@Folder()), @Progn( @If( Message-Id, @Set('id',Message-Id), @Set('id',@Concat(@Date(Date),'\t',Subject)) ), @If( @Contain($ids,$id), @Progn( @Set('dup',@Concat($dup,'\n',$id)), @Set('n',@Add($n,1)), @Delete() ), @Set('ids',@Concat($ids,'\n',$id)) ) ) ), @Concat('削除件数 :', $n, ' 件\n---------------------------------------\n',$dup) ) } *** 署名、挿れたり外したりしたいよ。 ■署名、挿れたり外したりしたいよ。 テンプレート使えばよろず解決。 *** 新規メールを常に署名を記載した状態で開きたい ■新規メールを常に署名を記載した状態で開きたい 下記のマクロをnew.templateの最後に空行を付けないように付け加える。 {@Progn( @Set('acct',@Account()), @If( @Equal($acct,'_hogera'), @Set('sig','hogera <hogera@hoge.com>\nTEL 123456\nFAX 9876543'), @Equal($acct,'hogu.co.jp'), @Set('sig','hogu.co.jp\nHogera Hogu'), @Set('sig','デフォルトの署名\nほげほげ') ), @Concat('X-QMAIL-Signature: ','\n\n\n--\n',$sig) )} ---終わり--- 注意点 ・このサンプルはサブアカウントは無視 ・上記でhogera、hogu.co.jpというのがアカウント名。 hogeraというアカウントならhogera <hoge以下の署名、hogu.co.jpというアカウント なら、hogu.co.jp[改行]Hogera Hoguという署名、それ以外ならすべての新規メール で デフォルトの署名[改行]ほげほげ という署名を付加。\nは改行を意味します。 ・わざわざX-QMAIL-Signature: というヘッダを付けているのは、オプションの設定で 署名が付けられていたりした場合に強制的に「なし」の状態でエディット画面を 開くようにするため。不要ならとってください。 ・返信や転送でも同じようにできます。@Load()を使って署名を一件ずつファイルに してファイル名をアカウント名で保存しておき、それを読み込むなどすれば 署名を変えたいときに多少便利かも。 ----