― MozillaZine.jp フォーラムは Mozilla 製品に関する情報交換の場です ―



All times are UTC + 9 hours

返信する
ユーザー名:
件名:
オプション:
BBCode: ON
[img]: ON
[flash]: OFF
[url]: ON
スマイリー: ON
BBCode を無効にする
フォントサイズ:
フォントカラー
スマイリーを無効にする
URL を自動的にパースしない
ユーザエージェントを表示する
認証コード
KCaptcha by Nikita_Sp
   

トピックのレビュー - 受信したメールに複数のフィルタを適用したい(コピーと移動)が上手く動作しない
作成者 メッセージ
  記事の件名:  Re: 受信したメールに複数のフィルタを適用したい(コピーと移動)が上手く動作しない  引用付きで返信する
EarlgreyTeaさん。

長々とありがとうございました。
そして回避策もありがとうございます。

アドオンを試したところ無事に動作しました。
投稿記事 Posted: 2023年3月11日(土) 15:14
  記事の件名:  Re: 受信したメールに複数のフィルタを適用したい(コピーと移動)が上手く動作しない  引用付きで返信する
■■ 「回避策について」編 ■■

下記の拡張機能を使うと、Thunderbird のメッセージフィルターにいくつかのフィルター条件やアクションを追加してくれます。
FiltaQuilla :: Thunderbird向けアドオン

追加アクションに「Move Later」というのがありまして、これを使用するとファイル移動のタイミングを遅延させてれます。

「FiltaQuilla」を Thunderbird に追加したら、まず使用したい機能を有効に設定する必要があります。
メニュー>アドオンとテーマ>拡張機能>FiltaQuilla のスパナアイコンのボタンをクリックすると設定画面が開きます。
添付ファイル:
FiltaQuilla設定画面.jpg
FiltaQuilla設定画面.jpg [ 98.62 KiB | 表示数: 4572 回 ]

「Filter Actions」タブの「Move Later」項目にチェックを入れ、OKをクリックして閉じてください。
そして、Thunderbird をいったん終了して再度起動してください。
これでメッセージフィルターで「Move Later」を使用可能になります。

フィルタールールの編集画面を開き、「フィルタ2」の動作で「メッセージを移動する」の代わりに「Move Later」を使用してみてください。
5通のテストメールを 起動時のメールチェックで処理させて試してみましたが、コピーは全てできています。
投稿記事 Posted: 2023年3月10日(金) 23:32
  記事の件名:  Re: 受信したメールに複数のフィルタを適用したい(コピーと移動)が上手く動作しない  引用付きで返信する
EarlgreyTea です。
kuromaku さんとの齟齬の解消に時間がかかってしまいましたが、ようやく中身の話ができます。

でもその前に念のため。
kuromaku さんが書きました:
これでiMapの問題ではないということが分かりました。
iMacとは違いますし、マップとも関係ありません。
正しく「IMAP」と表記しましょう。正確には「IMAP4(Internet Mail Access Protocol version 4)」というプロトコルになります。
EarlgreyTea さんが書きました:
これはIMAPサーバー上のフォルダー限定の問題でしょう。
という発言はもちろん「IMAPプロトコル」の問題という意味ではありません。
「IMAPサーバー上のフォルダー対象の場合のThunderbirdの処理」について言っています。

それでは本題に入ります。

■■ 「どういうことが起きていたと考えられるか」編 ■■

件のメッセージフィルターはこういう構成でした。
コード:
新着メール(件名「ほげぴよ1」、件名「ほげぴよ2」…)
 ├フィルタ1(条件:件名に「ほげ」を含む)
 │ ├1.メールを既読にする
 │ └2.メールを「受信トレイ」→「フォルダA」にコピーする
 │
 └フィルタ2(条件:件名に「ぴよ」を含む)
   ├1.メールを既読にする
   └2.メールを「受信トレイ」→「フォルダB」に移動する

フィルターアクションの順番はこれでいいのですが、アクションの対象はローカルのメールではなく、IMAPサーバーにコマンドを送信して処理をしてもらう必要があります。
状況から見て、Thunderbirdのメッセージフィルターのアクションで、サーバーからの処理完了を適切に待っていない疑いがあります。
関連すると思われるバグチケットを2件見つけましたが、どちらも解決されずに放置されています。

  • Bug 892424 Incomplete messages when copying then moving with a filter (When "Copy to Local folder, Move to IMAP folder" is executed on multiple mails, "uid MOVE(copy+store \Deleted) uid1:uidN IMAP" is issued just after "uid fetch uid1 body.peek[]" for first mail)
  • Bug 1221671 Filter sequence copy message to another inbox and then move original to another folder is not reliable (IMAP)

もし、メールのコピー処理が完了する前に移動をしてしまった場合、コピー元の受信トレイのメールが消失してしまい、コピーが失敗してしまうことになります。
「基本IMAP仕様」にしか対応していないサーバーの場合、メールの移動は「COPY / STORE / EXPUNGE」と3ステップが必要でしたが、MOVE拡張仕様に対応したサーバーでは MOVEコマンドの1ステップで可能です。
しかもサーバーによっては実際のデータ移動をせずに移動が可能のため、コピーより高速である可能性があります。

したがってメール移動のタイミングを遅らせてやらないと事故ることになります。
本来は Thunderbird のメッセージフィルターアクションで対策が入ることが望ましいですが、現状では厳しそうです。

次の投稿は「回避策について」編となります。
しばしお持ちください。
投稿記事 Posted: 2023年3月10日(金) 21:21
  記事の件名:  Re: 受信したメールに複数のフィルタを適用したい(コピーと移動)が上手く動作しない  引用付きで返信する
わたしなりの回避方法です。

【Beckyで検証】
Beckyで同じようにフィルターを設定したところ問題なくコピーも移動もできました。
これでiMapの問題ではないということが分かりました。
ただし、BeckyはiMapの場合、受信時にフィルタが実行されない仕様ですのでそもそも使えません。

【フィルターをコピーだけにする】
フィルター1 ほげ ⇒コピー > test1
フィルター2 ぴよ ⇒コピー > test2

この場合、正常に動作しました。これでコピーと移動が混在しているときにおかしな挙動になることが分かりました。

【回避方法】
■フィルター1
・フィルターを適用するタイミング
 新着メール受信時
・条件
 すべての条件に一致
 件名に「ほげ」含む
 タグに「後で」を含まない
・以下の動作を実行する
 test1フォルダにコピー
 メッセージにタグ「後で」をつける。
 フィルターの実行を中止する
■フィルター2
・フィルターを適用するタイミング
 新着メール受信時
 定期的、10分ごと
・条件
 すべての条件に一致
 件名に「ぴよ」含む
以下の動作を実行する
 test2フォルダに移動

このようにすれば一応期待通りの動きにはなりますが、フィルター2が実行されるのが受信から10分後というのが微妙ですが。
投稿記事 Posted: 2023年3月10日(金) 14:26
  記事の件名:  Re: 受信したメールに複数のフィルタを適用したい(コピーと移動)が上手く動作しない  引用付きで返信する
kuromaku さんが書きました:
上のログで説明すると1回目のコピー移動の日時(2023/03/09 10:59:55)が同じ。
2回目のコピー移動の日時(2023/03/09 11:00:08)が同じという意味でした。
紛らわしくてすみません。

一応了解です。

でもそれって、紛らわしいんじゃなくて
EarlgreyTea さんが書きました:
同時に送信したメールの場合、記録される「日時」の時系列が逆転していました。
と、全然噛み合ってない話なんです。

ログの抜粋に色を付けて着目点を示したつもりだったのですが、伝わってなかったのですね。
同じメールのログの日時が同じなのは当たり前のことであり、メールの前後関係とログでの前後関係が逆転してるように見える、という話だったのです。

それでは検証など準備をした上で、
  • どういうことが起きていたと考えられるか
  • 回避策について
という話をしたいと思います。

今日は疲れたので明日か土曜日になるかと思います。
投稿記事 Posted: 2023年3月09日(木) 23:07
  記事の件名:  Re: 受信したメールに複数のフィルタを適用したい(コピーと移動)が上手く動作しない  引用付きで返信する
[2023/03/09 11:00:30] 題名: ほげぴよ1 日時: 2023/03/09 10:59:55 コピー。コピー先: /test1
[2023/03/09 11:00:30] 題名: ほげぴよ1 日時: 2023/03/09 10:59:55 移動。移動先: /test2

[2023/03/09 11:00:30] 題名: ほげぴよ2 日時: 2023/03/09 11:00:08 コピー。コピー先: /test1
[2023/03/09 11:00:30] 題名: ほげぴよ2 日時: 2023/03/09 11:00:08 移動。移動先: /test2

上のログで説明すると1回目のコピー移動の日時(2023/03/09 10:59:55)が同じ。
2回目のコピー移動の日時(2023/03/09 11:00:08)が同じという意味でした。
紛らわしくてすみません。
投稿記事 Posted: 2023年3月09日(木) 22:07
  記事の件名:  Re: 受信したメールに複数のフィルタを適用したい(コピーと移動)が上手く動作しない  引用付きで返信する
kuromaku さんが書きました:
引用:
こちら、どうでしょうか。
ログを見れば明らかなことですが、kuromaku さんの認識を確認しておきたいです。

引用:
私がログのタイムスタンプと呼んでいるのは青字の部分で、「日時」は赤字の部分になります。
わたしもEarlgreyTeaさんと同じで上記の認識です。

えっ?
それでは下記はどういうことになるのでしょう。

viewtopic.php?f=3&t=21852#p75584
kuromaku さんが書きました:
ログの日時は反転していませんでした。
同日時になっていました。
viewtopic.php?f=3&t=21852#p75589
kuromaku さんが書きました:
秒の単位まで同じです。

5通受信ですが下記のようにしました。
1.メーラーを終了する
2.スマホから対象のメールアドレスに5通送信
3.メーラーを起動する
ここで5通受信されます。
実際には順次受信ですのでまったくの同時ではないですね。
viewtopic.php?f=3&t=21852#p75592
EarlgreyTea さんが書きました:
ログの「日時」の件ですが、メールの「送信日時」を表示しているように見受けられるのですが、スマートフォンで順次送信したメールだと同一にはならないはず。
ログのタイムスタンプのことを言ってるのではないでしょうか?

フィルターログで「日時」として表示されている値は処理対象のメールの「送信日時」です。
手動で5通のメールを順次送信したのであれば、「日時」が「秒の単位まで同じ」になると言うのはおかしいです。
一方、フィルターログ自体は起動時のメールチェックタイミングで一瞬で出力されるので、ログの「タイムスタンプ」は同一になります。

もう一度お尋ねします。

kuromaku さんが書きました:
ログの日時は反転していませんでした。
同日時になっていました。

の発言は「日時」と「タイムスタンプ」を取り違えたのではありませんか?


もし、本当にメールの送信日時が同一だったとしたら、どういう方法でメールを送信したのか説明をお願いしたいです。

このトピックではいろいろ齟齬がありましたので、よろしくお願いします。
投稿記事 Posted: 2023年3月09日(木) 21:39
  記事の件名:  Re: 受信したメールに複数のフィルタを適用したい(コピーと移動)が上手く動作しない  引用付きで返信する
引用:
こちら、どうでしょうか。
ログを見れば明らかなことですが、kuromaku さんの認識を確認しておきたいです。

引用:
私がログのタイムスタンプと呼んでいるのは青字の部分で、「日時」は赤字の部分になります。
わたしもEarlgreyTeaさんと同じで上記の認識です。
投稿記事 Posted: 2023年3月09日(木) 14:48
  記事の件名:  Re: 受信したメールに複数のフィルタを適用したい(コピーと移動)が上手く動作しない  引用付きで返信する
EarlgreyTea さんが書きました:
ログの「日時」の件ですが、メールの「送信日時」を表示しているように見受けられるのですが、スマートフォンで順次送信したメールだと同一にはならないはず。
ログのタイムスタンプのことを言ってるのではないでしょうか?

こちら、どうでしょうか。
ログを見れば明らかなことですが、kuromaku さんの認識を確認しておきたいです。

症状に関しては、コピーが完了する前に移動でメールを削除してしまっているようです。
これはIMAPサーバー上のフォルダー限定の問題でしょう。
あとから消えるのだとしたら、サーバー上でコピーが失敗し、それが同期されることによるものでしょう。
投稿記事 Posted: 2023年3月09日(木) 14:18
  記事の件名:  Re: 受信したメールに複数のフィルタを適用したい(コピーと移動)が上手く動作しない  引用付きで返信する
今回、既読にする処理を抜いて試しました。
【ログ】
[2023/03/09 11:00:30] 題名: ほげぴよ1 日時: 2023/03/09 10:59:55 コピー。コピー先: /test1
[2023/03/09 11:00:30] 題名: ほげぴよ1 日時: 2023/03/09 10:59:55 移動。移動先: /test2
[2023/03/09 11:00:30] 題名: ほげぴよ2 日時: 2023/03/09 11:00:08 コピー。コピー先: /test1
[2023/03/09 11:00:30] 題名: ほげぴよ2 日時: 2023/03/09 11:00:08 移動。移動先: /test2

test1フォルダに受信されたメール
・ほげぴよ1
test2フォルダに受信されたメール
・ほげぴよ1
・ほげぴよ2

Thunderbird起動時に受信した瞬間、左ツリーのtest1フォルダの未読件数が2になり、すぐに1になりました。
投稿記事 Posted: 2023年3月09日(木) 11:24
  記事の件名:  Re: 受信したメールに複数のフィルタを適用したい(コピーと移動)が上手く動作しない  引用付きで返信する
ログの「日時」の件ですが、メールの「送信日時」を表示しているように見受けられるのですが、スマートフォンで順次送信したメールだと同一にはならないはず。
ログのタイムスタンプのことを言ってるのではないでしょうか?

[2023/03/08 2:47:37] (省略) 題名: ほげぴよ同時4 日時: 2023/03/08 2:47:20 既読にしました
[2023/03/08 2:47:37] (省略) 題名: ほげぴよ同時4 日時: 2023/03/08 2:47:20 メッセージをコピーしました。(省略)
[2023/03/08 2:47:37] (省略) 題名: ほげぴよ同時4 日時: 2023/03/08 2:47:20 既読にしました
[2023/03/08 2:47:37] (省略) 題名: ほげぴよ同時4 日時: 2023/03/08 2:47:20 メッセージを移動しました。(省略)

私がログのタイムスタンプと呼んでいるのは青字の部分で、「日時」は赤字の部分になります。
投稿記事 Posted: 2023年3月08日(水) 21:27
  記事の件名:  Re: 受信したメールに複数のフィルタを適用したい(コピーと移動)が上手く動作しない  引用付きで返信する
確かにそうですね。

EarlgreyTeaさんが試してくださったように「xx分こどに受信」の設定でも
同症状ですので、複数のフィルターにヒットするメールを複数受信したときに発生するようです。
投稿記事 Posted: 2023年3月08日(水) 21:02
  記事の件名:  Re: 受信したメールに複数のフィルタを適用したい(コピーと移動)が上手く動作しない  引用付きで返信する
kuromaku さんが書きました:
2.スマホから対象のメールアドレスに5通送信
3.メーラーを起動する

なるほど。
しかしそれですと、
kuromaku さんが書きました:
「新着メッセージが届いた時のサーバー通知を許可する」にCheck
「新着メッセージが無いかxx分ごとに確認する」はNoCheck
が全然関係無いですね。
ひとまず了解です。
こちらもThunderbird起動時に受信させて確認します。
投稿記事 Posted: 2023年3月08日(水) 20:54
  記事の件名:  Re: 受信したメールに複数のフィルタを適用したい(コピーと移動)が上手く動作しない  引用付きで返信する
秒の単位まで同じです。

5通受信ですが下記のようにしました。
1.メーラーを終了する
2.スマホから対象のメールアドレスに5通送信
3.メーラーを起動する
ここで5通受信されます。
実際には順次受信ですのでまったくの同時ではないですね。
紛らわしい言い回しで失礼しました。
投稿記事 Posted: 2023年3月08日(水) 20:40
  記事の件名:  Re: 受信したメールに複数のフィルタを適用したい(コピーと移動)が上手く動作しない  引用付きで返信する
kuromaku さんが書きました:
ログの日時は反転していませんでした。
同日時になっていました。

秒の単位でまったく同じということでしょうか。
そうしますと、私の場合とちょっと状況が違いますね。

ところで、
kuromaku さんが書きました:
2通同時受信を5通同時にしてみました。
こちらはどのように確認されたのでしょう。
手動でメールを送る方法では2つが限度だと思います。
スクリプト等で同時5通送信されたのでしょうか。
投稿記事 Posted: 2023年3月08日(水) 20:30

All times are UTC + 9 hours


ページ移動:  
Powered by MozillaZine.jp® Forum Software © phpBB Group , Almsamim WYSIWYG
Japanese translation principally by ocean