|
送信済みメールと、あと最近要望があったのが草稿フォルダのメールについて、
メールサーバーと同期させたいというのがあります。今のところ出来ないですけ
ども…。
で、そういう同期機能を作る上で、まずはアップロード機能を作ってみた所で
ありました。
> 何か、良い方法はないでしょうか。
>
> 例えば、送信したメールの振り分け設定(高度な動作の設定)で、
> フォルダへコピー(これはローカルのフォルダに複写)のように、
> 「IMAPサーバーにアップロード」みたいな機能があれば、
> うれしいです。
普通の受信系フォルダの場合の同期は、
・ローカルにあってサーバーに無いメールはローカルから削除。
・サーバーにあってローカルに無いメールはダウンロード。
なんですが、送信済みフォルダは
・ローカルにあってサーバーに無いメールはアップロード。
・サーバーにあってローカルに無いメールはサーバーから削除。
ってすればいいので、そういう同期機能を作るのがベストかなぁと思いつつも、
作るのなかなか大変なので作ってないです。
振り分けアクションでアップロードする機能追加は、同期機能よりは難しくな
さそうな気はします。ただ、振り分けアクションのダイアログボックスが今もう
画面に入りきるかどうかぎりぎりのサイズなので、これにさらにアクション追加
するのもなかなか難しい物があります。
ということでどうするかですが…
簡単に対応できるようにということで、とりあえずtkinfo.dllのマクロ関数に、
#n = dllfunc("ImapUpload", "対象アカウント", "対象フォルダ");
みたいなのを追加して、それを使ってマクロでアップロードできるようにする
って作戦があるかなぁと思います。
例えば送信済みメールの振り分けアクションで「フォルダへコピー」でアップ
ロード用の一時フォルダにコピーするようにして、「受信が一段落した時」用の
自動起動マクロで、
#count = dllfunc("GetFolderMailCount", "アップロード用アカウント"
, "アップロード用フォルダ");
if( #count != 0 ) {
$prevaccount = dllfuncstr("CurrentAccount");
$prevfolder = dllfuncstr("CurrentFolder");
#n = dllfunc("SelectFolder", "アップロード用アカウント"
, "アップロード用フォルダ");
#n = dllfunc("SelectAllMail");
#n = dllfunc("ImapUpload", "IMAPアカウント", "送信済みフォルダ");
if( #n == #count ) {
#n = dllfunc("Delete", 1);
}
#n = dllfunc("SelectFolder", $prevaccount, $prevfolder);
}
みたいなマクロを登録しておくとか。
送信しただけの時にはマクロが実行されないって問題があるので、それについ
ては別途、「マクロ・マクロ登録...」の「自動起動」ページの「受信が一段落
した時」の下に、
□ 送信のみの場合も実行
ってオプションを追加するとか。
その程度の対応でしたら、たぶん1〜2日で出来そうな気がします。
|
|