IMAP4メールデータ取得バッチファイル事例 new!

他社製メールサーバなど、IMAP4使用時のメールボックスフォルダに残っているメールデータがある場合、1台のWindowsマシンからバッチファイルによってIMAP4メールデータ取得を行うには、事例にあるバッチファイルおよびリストファイルを任意フォルダ内に作成し、管理者権限のコマンドプロンプトから実行します。
バッチファイル実行に当たっては、接続メールサーバのIPアドレス、ポート番号(通常は143)をバッチファイル【get_imap_data2.bat】内の"set adr="部分に記述することと、すべてのユーザーアカウント(メールアドレス)とそれぞれIMAP4パスワードが事前に判明しており、それらの情報と保存先フォルダをリストファイル【userlist.txt】へあらかじめ全部登録しておく作業が必須になります。メールサーバ製品種類を問わないでご利用になれると思いますが、すべてのユーザーのIMAP4パスワードがわからない場合は、このバッチファイルは使えません。バッチファイルを実行すると"0000000001-000000.MSG"というファイル連番形式で保存先フォルダへメールデータが出力されます。
ちなみにE-Postシリーズでは、ユーザー管理がSoftAccount方式であれば、ユーザーエクスポート時にIMAP4パスワードも合わせて出力できます。
【get_imap_data2.bat】 IMAP4メールデータ取得バッチファイル事例 下線部書き換え
@echo off

setlocal enabledelayedexpansion

rem userlist.txtへカンマ区切りで保存右記の書式で保存 ユーザアカウント,パスワード,保存先フォルダ
rem 接続アドレス:ポート
set adr=imap://10.0.1.9:143/

rem ユーザリストuserlist.txtからID,PWを取得し順次保存
for /f "tokens=1,2,3 delims=, " %%a in (userlist.txt) do (

echo %%a
echo %%b
echo %%c

curl -v -u "%%a:%%b" %adr% -o list.txt

rem for /f "delims=" %%d in (list.txt) do (
for /f "tokens=2 delims=)" %%d in (list.txt) do (

rem UID値
set s1=%%d
set s2=!s1:~5!
set s=!s2:"=!
rem echo s=!s!
set s3=!s: =%%20!
set n=!s:/=_!

curl -u "%%a:%%b" %adr%!s3!/ -X "FETCH 1:* (UID FLAGS)" -o flags.txt
rem type flags.txt

mkdir "%%c!s!"

for /f "tokens=5,7*" %%f in (flags.txt) do (

echo %%f
rem フラグ
set l=%%g%%h%%i%%j%%k
set t1=0

ECHO !l! | find "Answered" >NUL
IF NOT ERRORLEVEL 1 (set t2=1) else (set t2=0)
ECHO !l! | find "Flagged" >NUL
IF NOT ERRORLEVEL 1 (set t3=1) else (set t3=0)
ECHO !l! | find "Deleted" >NUL
IF NOT ERRORLEVEL 1 (set t4=1) else (set t4=0)
ECHO !l! | find "Seen" >NUL
IF NOT ERRORLEVEL 1 (set t5=1) else (set t5=0)
ECHO !l! | find "Draft" >NUL
IF NOT ERRORLEVEL 1 (set t6=1) else (set t6=0)

set u=%%f$
echo !u! !t1!!t2!!t3!!t4!!t5!!t6!
rem echo !u:~0,-1!
set num=0000000000!u:~0,-1!
set num=!num:~-10,10!

curl -u "%%a:%%b" "%adr%!s3!;UID=!u:~0,-1!;SECTION=" -o "%%c!s!\!num:~!-!t1!!t2!!t3!!t4!!t5!!t6!.MSG"
)
del "flags.txt"
)
)
endlocal

【userlist.txt】 リストファイル事例 ※書式:ユーザーアカウント(メールアドレス),IMAP4パスワード,保存先フォルダ ※すべてのユーザーアカウントの登録が必要
dummy@domain.test,dummy,inbox\dummy\
    :    
    :    

(関連FAQ)
POP3メールデータ取得バッチファイル事例