フォルダー内の未読メールを一気に既読にしたい
フォルダ内のすべてのメールを既読にするには以下の1行を menus.xmlの<menu name="folder">内に追加。
※Ver.2.9.28以降で有効
※Ver.2.9.28以降で有効
<menuitem text="すべて既読" action="MessageMacro" param="@Seen(@True())" />
フォルダビューでフォルダ選択して右クリックして「すべて既読」をぽちっとする。
マークのON/OFFボタンを作る
以下をtoolbars.xmlのmainframeに追記すればフラグON/OFFボタンができます
<button image="24" action="MessageMacro" text="マーク" param="@Marked(@Not(@Marked()))"/>
キーボードショートカットでマークのON/OFF
Qmail3は多くのキーボードショートカットが設定されています。
たとえばリストウィンドウでMを押すと、選択されているメッセージにマークをつけます。
これは keymap.xml の<keymap name="ListWindow">セクションで次のように設定されています。
たとえばリストウィンドウでMを押すと、選択されているメッセージにマークをつけます。
これは keymap.xml の<keymap name="ListWindow">セクションで次のように設定されています。
<action name="MessageMark">
<key key="M" ctrl="true"/>
</action>
マークを取り消したいときは、shift+ctrl+Mか、いちいち右クリックしてコンテキストメニューからマークを消したりする必要があり面倒です。下記のように変更するとctrl+Mを押すとマークフラグがON→OFF→ONを繰り返します。
<action name="MessageMacro" param="@Marked(@Not(@Marked()))">
<key key="M" ctrl="true"/>
</action>
同様に削除フラグのON/OFFなど、色々なフラグに応用できます。
削除するとき削除マーク付けるのではなく一気に削除したい
toolbars.xmlの削除のところを下記に置き換え
<button image="5" action="ToolInvokeAction" param="EditDelete|EditClearDeleted" text="削除"/>
開封通知を送るにはどうすれば良いですか?
返信時に元メールと同じフォルダに送信メールを保存する
1) 全てのアカウントで適用
qmail.xmlのGlobal/SaveSentInSameFolderを1にする。
参考:http://snak.tdiary.net/20061229.html#p01
qmail.xmlのGlobal/SaveSentInSameFolderを1にする。
参考:http://snak.tdiary.net/20061229.html#p01
2) 特定のアカウントで適用
各アカウントフォルダにあるaccount.xmlのGlobal/SaveSentInSameFolderを1にする。
実際には<section name="Global">の中(下)に
<key name="SaveSentInSameFolder">1</key>
を追記します。
各アカウントフォルダにあるaccount.xmlのGlobal/SaveSentInSameFolderを1にする。
実際には<section name="Global">の中(下)に
<key name="SaveSentInSameFolder">1</key>
を追記します。
受信メールの受信者をアドレス登録した名前で表示したい
重複メール削除
振り分けルールで設定する
@Progn(@Variable('message-id', '', @True()), @Set('ret', @Contain($message-id, Message-Id)), @Set('message-id', @Concat($message-id, Message-Id), @True()), $ret)
重複メール削除テンプレート
振り分けルールでの削除とほぼ同じ事をしていますが、削除メールの内容をメール画面に表示します。
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,'\t',%From))
),
@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)
)
}
重複メールを高速削除する方法
1. 検索の基本タブで「マクロ」「新しい検索フォルダを作成」を選択
2. 「検索文字列」を @True()、「フォルダ」は全てのフォルダを選択。必要に応じて「サブフォルダも検索」をチェックする。
3. あっという間に検索できますが、新しく出来た検索フォルダを右クリックして「重複メール削除」と名前を変更。
4. 「ツール」-「オプション」-「振り分け」で新規のルールを作成します。
アカウント:未指定 フォルダ:検索/重複メール削除
追加タブで次のルールを入れる。
2. 「検索文字列」を @True()、「フォルダ」は全てのフォルダを選択。必要に応じて「サブフォルダも検索」をチェックする。
3. あっという間に検索できますが、新しく出来た検索フォルダを右クリックして「重複メール削除」と名前を変更。
4. 「ツール」-「オプション」-「振り分け」で新規のルールを作成します。
アカウント:未指定 フォルダ:検索/重複メール削除
追加タブで次のルールを入れる。
@Progn(@Variable('message-id','',@True()),@Set('ret',@Equal(Message-Id,$message-id)),@Set('message-id',Message-Id,@True()),$ret)
動作:移動 アカウント:未指定 フォルダ:ゴミ箱 使用:「手動」のみをチェック
5. 高速削除をするため、検索フォルダで表示されたメールを(送信)日付順にソートします。重複メールは(送信)日付も同じはずだという前提です。
6. フォルダを選択したら「メッセージ」-「振り分け」を選べば重複メール削除を開始します。
※ Message-IDが同じでもDateが異なれば重複メールとみなさない方法です
※ Message-Idを使わず%Dateと%Fromだけ、或いは%Dateだけで同一メール判定するという禁断の技もありますが、誤削除がないとは言えず記載はしません。因みに、Message-Idはキャッシュされておらず、いちいちメールデータを読みにいくので遅くなります。
5. 高速削除をするため、検索フォルダで表示されたメールを(送信)日付順にソートします。重複メールは(送信)日付も同じはずだという前提です。
6. フォルダを選択したら「メッセージ」-「振り分け」を選べば重複メール削除を開始します。
※ Message-IDが同じでもDateが異なれば重複メールとみなさない方法です
※ Message-Idを使わず%Dateと%Fromだけ、或いは%Dateだけで同一メール判定するという禁断の技もありますが、誤削除がないとは言えず記載はしません。因みに、Message-Idはキャッシュされておらず、いちいちメールデータを読みにいくので遅くなります。
メールが消えた!
■本家ドキュメント参照
http://q3.snak.org/doc/Maintenance.html
http://q3.snak.org/doc/Maintenance.html
メールを受信日時でソートしたい
本家バグトラックのやり方。
http://q3.snak.org/bts/guest.cgi?project=Q3&action=view_report&id=1108
ただ、これではメール数が多いと処理に時間掛かるため、IDでソートするほうが早くなります。
[表示]-[カラムのカスタマイズ]で
http://q3.snak.org/bts/guest.cgi?project=Q3&action=view_report&id=1108
ただ、これではメール数が多いと処理に時間掛かるため、IDでソートするほうが早くなります。
[表示]-[カラムのカスタマイズ]で
タイトル:ID (*)
タイプ :ID
幅 :40 (*)
ソート :数値
として、IDでソートします。(*)はお好みで変更してください。