chore: auto-commit uncommitted changes

This commit is contained in:
James 2026-02-17 06:00:32 -05:00
parent c1e20b9652
commit edbb542ccc
22 changed files with 8497 additions and 5 deletions

View File

@ -0,0 +1,89 @@
Here is imapsync 2.229 on host forge, a linux system with 0.8/62.7 free GiB of RAM, 18.21% used by processes.
with Perl 5.38.2 and Mail::IMAPClient 3.43
Transfer started at Tuesday 17 February 2026-02-17 03:30:46 -0500 EST
PID is 3876137 my PPID is 3876136
Log file is LOG_imapsync/2026_02_17_03_30_46_137_tj@jongsma.me_tj@jongsma.me.txt ( to change it, use --logfile path ; or use --nolog to turn off logging )
Load is 0.57 0.60 0.52 1/1217 on 8 cores
Current directory is /home/johan/clawd
Real user id is johan (uid 1000)
Effective user id is johan (euid 1000)
$RCSfile: imapsync,v $ $Revision: 2.229 $ $Date: 2022/09/14 18:08:24 $
Command line used, run by /usr/bin/perl:
/tmp/imapsync --host1 127.0.0.1 --port1 1143 --user1 tj@jongsma.me --password1 MASKED --tls1 --host2 100.70.148.118 --port2 993 --user2 tj@jongsma.me --password2 MASKED --ssl2 --justfolders --dry
Temp directory is /tmp ( to change it use --tmpdir dirpath )
kill -QUIT 3876137 # special behavior: call to sub catch_exit
kill -TERM 3876137 # special behavior: call to sub catch_exit
kill -INT 3876137 # special behavior: call to sub catch_reconnect
kill -HUP 3876137 # special behavior: call to sub catch_print
kill -USR1 3876137 # special behavior: call to sub toggle_sleep
File /tmp/imapsync.pid does not exist
PID file is /tmp/imapsync.pid ( to change it, use --pidfile filepath ; to avoid it use --pidfile "" )
Writing my PID 3876137 in /tmp/imapsync.pid
Writing also my logfile name in /tmp/imapsync.pid : LOG_imapsync/2026_02_17_03_30_46_137_tj@jongsma.me_tj@jongsma.me.txt
Modules version list ( use --no-modulesversion to turn off printing this Perl modules list ):
Authen::NTLM 1.09
CGI 4.63
Compress::Zlib 2.204
Crypt::OpenSSL::RSA 0.33
Data::Uniqid 0.12
Digest::HMAC_MD5 1.04
Digest::HMAC_SHA1 1.04
Digest::MD5 2.58_01
Encode 3.19
Encode::IMAPUTF7 1.07
File::Copy::Recursive 0.45
File::Spec 3.88
Getopt::Long 2.54
HTML::Entities 3.81
IO::Socket 1.52
IO::Socket::INET 1.52
IO::Socket::INET6 2.73
IO::Socket::IP 0.4101
IO::Socket::SSL 2.085
IO::Tee 0.65
JSON 4.10
JSON::WebToken 0.10
LWP 6.76
MIME::Base64 3.16_01
Mail::IMAPClient 3.43
Net::Ping 2.76
Net::SSLeay 1.94
Term::ReadKey 2.38
Test::MockObject Not installed
Time::HiRes 1.9775
URI::Escape 5.27
Unicode::String 2.10
Info: will resync flags for already transferred messages. Use --noresyncflags to not resync flags.
SSL debug mode level is --debugssl 1 (can be set from 0 meaning no debug to 4 meaning max debug)
Host2: SSL default mode is like --sslargs2 "SSL_verify_mode=0", meaning for host2 SSL_VERIFY_NONE, ie, do not check the server certificate.
Host2: Use --sslargs2 SSL_verify_mode=1 to have SSL_VERIFY_PEER, ie, check the server certificate. of host2
Info: turned ON syncinternaldates, will set the internal dates (arrival dates) on host2 same as host1.
Host1: will try to use LOGIN authentication on host1
Host2: will try to use LOGIN authentication on host2
Host1: imap connection timeout is 120 seconds
Host2: imap connection timeout is 120 seconds
Host1: imap connection keepalive is on on host1. Use --nokeepalive1 to disable it.
Host2: imap connection keepalive is on on host2. Use --nokeepalive2 to disable it.
Host1: IMAP server [127.0.0.1] port [1143] user [tj@jongsma.me]
Host2: IMAP server [100.70.148.118] port [993] user [tj@jongsma.me]
Host1: connecting and login on host1 [127.0.0.1] port [1143] with user [tj@jongsma.me]
Host1 IP address: 127.0.0.1 Local IP address: 127.0.0.1
Host1 banner: * OK [CAPABILITY AUTH=PLAIN ID IDLE IMAP4rev1 MOVE STARTTLS UIDPLUS UNSELECT] Proton Mail Bridge 03.21.02 - gluon session ID 1193
Host1 capability before authentication: AUTH=PLAIN ID IDLE IMAP4rev1 STARTTLS AUTH
Host1: Socket successfully converted to SSL
Host1: success login on [127.0.0.1] with user [tj@jongsma.me] auth [LOGIN] or [LOGIN]
Host2: connecting and login on host2 [100.70.148.118] port [993] with user [tj@jongsma.me]
Host2 IP address: 100.70.148.118 Local IP address: 100.117.7.9
Host2 banner: * OK [CAPABILITY IMAP4rev2 IMAP4rev1 ENABLE SASL-IR LITERAL+ ID UTF8=ACCEPT JMAPACCESS AUTH=PLAIN AUTH=OAUTHBEARER AUTH=XOAUTH2] Stalwart IMAP4rev2 at your service.
Host2 capability before authentication: IMAP4rev2 IMAP4rev1 ENABLE SASL-IR LITERAL+ ID UTF8=ACCEPT JMAPACCESS AUTH=PLAIN AUTH=OAUTHBEARER AUTH=XOAUTH2 UTF8 AUTH
Host2 info: authmech [LOGIN] user [tj@jongsma.me] authuser [] IsUnconnected []
Host2 failure: Error login on [100.70.148.118] with user [tj@jongsma.me] auth [LOGIN]: 2 NO [AUTHENTICATIONFAILED] Authentication failed
Host2: failed login on [100.70.148.118] with user [tj@jongsma.me] auth [LOGIN]
++++ Listing 1 errors encountered during the sync ( avoid this listing with --noerrorsdump ).
Err 1/1: Host2 failure: Error login on [100.70.148.118] with user [tj@jongsma.me] auth [LOGIN]: 2 NO [AUTHENTICATIONFAILED] Authentication failed
The most frequent error is ERR_AUTHENTICATION_FAILURE_USER2. Check the credentials for tj@jongsma.me.
Exiting with return value 162 (EXIT_AUTHENTICATION_FAILURE_USER2) 1/50 nb_errors/max_errors PID 3876137
Removing pidfile /tmp/imapsync.pid
Disconnecting from host1 127.0.0.1 user1 tj@jongsma.me
Log file is LOG_imapsync/2026_02_17_03_30_46_137_tj@jongsma.me_tj@jongsma.me.txt ( to change it, use --logfile filepath ; or use --nolog to turn off logging )

View File

@ -0,0 +1,89 @@
Here is imapsync 2.229 on host forge, a linux system with 0.7/62.7 free GiB of RAM, 18.21% used by processes.
with Perl 5.38.2 and Mail::IMAPClient 3.43
Transfer started at Tuesday 17 February 2026-02-17 03:30:53 -0500 EST
PID is 3876183 my PPID is 3876182
Log file is LOG_imapsync/2026_02_17_03_30_53_240_tj@jongsma.me_tj.txt ( to change it, use --logfile path ; or use --nolog to turn off logging )
Load is 0.71 0.63 0.53 1/1217 on 8 cores
Current directory is /home/johan/clawd
Real user id is johan (uid 1000)
Effective user id is johan (euid 1000)
$RCSfile: imapsync,v $ $Revision: 2.229 $ $Date: 2022/09/14 18:08:24 $
Command line used, run by /usr/bin/perl:
/tmp/imapsync --host1 127.0.0.1 --port1 1143 --user1 tj@jongsma.me --password1 MASKED --tls1 --host2 100.70.148.118 --port2 993 --user2 tj --password2 MASKED --ssl2 --justfolders --dry
Temp directory is /tmp ( to change it use --tmpdir dirpath )
kill -QUIT 3876183 # special behavior: call to sub catch_exit
kill -TERM 3876183 # special behavior: call to sub catch_exit
kill -INT 3876183 # special behavior: call to sub catch_reconnect
kill -HUP 3876183 # special behavior: call to sub catch_print
kill -USR1 3876183 # special behavior: call to sub toggle_sleep
File /tmp/imapsync.pid does not exist
PID file is /tmp/imapsync.pid ( to change it, use --pidfile filepath ; to avoid it use --pidfile "" )
Writing my PID 3876183 in /tmp/imapsync.pid
Writing also my logfile name in /tmp/imapsync.pid : LOG_imapsync/2026_02_17_03_30_53_240_tj@jongsma.me_tj.txt
Modules version list ( use --no-modulesversion to turn off printing this Perl modules list ):
Authen::NTLM 1.09
CGI 4.63
Compress::Zlib 2.204
Crypt::OpenSSL::RSA 0.33
Data::Uniqid 0.12
Digest::HMAC_MD5 1.04
Digest::HMAC_SHA1 1.04
Digest::MD5 2.58_01
Encode 3.19
Encode::IMAPUTF7 1.07
File::Copy::Recursive 0.45
File::Spec 3.88
Getopt::Long 2.54
HTML::Entities 3.81
IO::Socket 1.52
IO::Socket::INET 1.52
IO::Socket::INET6 2.73
IO::Socket::IP 0.4101
IO::Socket::SSL 2.085
IO::Tee 0.65
JSON 4.10
JSON::WebToken 0.10
LWP 6.76
MIME::Base64 3.16_01
Mail::IMAPClient 3.43
Net::Ping 2.76
Net::SSLeay 1.94
Term::ReadKey 2.38
Test::MockObject Not installed
Time::HiRes 1.9775
URI::Escape 5.27
Unicode::String 2.10
Info: will resync flags for already transferred messages. Use --noresyncflags to not resync flags.
SSL debug mode level is --debugssl 1 (can be set from 0 meaning no debug to 4 meaning max debug)
Host2: SSL default mode is like --sslargs2 "SSL_verify_mode=0", meaning for host2 SSL_VERIFY_NONE, ie, do not check the server certificate.
Host2: Use --sslargs2 SSL_verify_mode=1 to have SSL_VERIFY_PEER, ie, check the server certificate. of host2
Info: turned ON syncinternaldates, will set the internal dates (arrival dates) on host2 same as host1.
Host1: will try to use LOGIN authentication on host1
Host2: will try to use LOGIN authentication on host2
Host1: imap connection timeout is 120 seconds
Host2: imap connection timeout is 120 seconds
Host1: imap connection keepalive is on on host1. Use --nokeepalive1 to disable it.
Host2: imap connection keepalive is on on host2. Use --nokeepalive2 to disable it.
Host1: IMAP server [127.0.0.1] port [1143] user [tj@jongsma.me]
Host2: IMAP server [100.70.148.118] port [993] user [tj]
Host1: connecting and login on host1 [127.0.0.1] port [1143] with user [tj@jongsma.me]
Host1 IP address: 127.0.0.1 Local IP address: 127.0.0.1
Host1 banner: * OK [CAPABILITY AUTH=PLAIN ID IDLE IMAP4rev1 MOVE STARTTLS UIDPLUS UNSELECT] Proton Mail Bridge 03.21.02 - gluon session ID 1194
Host1 capability before authentication: AUTH=PLAIN ID IDLE IMAP4rev1 STARTTLS AUTH
Host1: Socket successfully converted to SSL
Host1: success login on [127.0.0.1] with user [tj@jongsma.me] auth [LOGIN] or [LOGIN]
Host2: connecting and login on host2 [100.70.148.118] port [993] with user [tj]
Host2 IP address: 100.70.148.118 Local IP address: 100.117.7.9
Host2 banner: * OK [CAPABILITY IMAP4rev2 IMAP4rev1 ENABLE SASL-IR LITERAL+ ID UTF8=ACCEPT JMAPACCESS AUTH=PLAIN AUTH=OAUTHBEARER AUTH=XOAUTH2] Stalwart IMAP4rev2 at your service.
Host2 capability before authentication: IMAP4rev2 IMAP4rev1 ENABLE SASL-IR LITERAL+ ID UTF8=ACCEPT JMAPACCESS AUTH=PLAIN AUTH=OAUTHBEARER AUTH=XOAUTH2 UTF8 AUTH
Host2 info: authmech [LOGIN] user [tj] authuser [] IsUnconnected []
Host2 failure: Error login on [100.70.148.118] with user [tj] auth [LOGIN]: 2 NO [AUTHENTICATIONFAILED] Authentication failed
Host2: failed login on [100.70.148.118] with user [tj] auth [LOGIN]
++++ Listing 1 errors encountered during the sync ( avoid this listing with --noerrorsdump ).
Err 1/1: Host2 failure: Error login on [100.70.148.118] with user [tj] auth [LOGIN]: 2 NO [AUTHENTICATIONFAILED] Authentication failed
The most frequent error is ERR_AUTHENTICATION_FAILURE_USER2. Check the credentials for tj.
Exiting with return value 162 (EXIT_AUTHENTICATION_FAILURE_USER2) 1/50 nb_errors/max_errors PID 3876183
Removing pidfile /tmp/imapsync.pid
Disconnecting from host1 127.0.0.1 user1 tj@jongsma.me
Log file is LOG_imapsync/2026_02_17_03_30_53_240_tj@jongsma.me_tj.txt ( to change it, use --logfile filepath ; or use --nolog to turn off logging )

View File

@ -0,0 +1,92 @@
Here is imapsync 2.229 on host forge, a linux system with 0.8/62.7 free GiB of RAM, 18.22% used by processes.
with Perl 5.38.2 and Mail::IMAPClient 3.43
Transfer started at Tuesday 17 February 2026-02-17 03:30:59 -0500 EST
PID is 3876230 my PPID is 3876229
Log file is LOG_imapsync/2026_02_17_03_30_59_959_tj@jongsma.me_tj.txt ( to change it, use --logfile path ; or use --nolog to turn off logging )
Load is 0.74 0.64 0.53 1/1221 on 8 cores
Current directory is /home/johan/clawd
Real user id is johan (uid 1000)
Effective user id is johan (euid 1000)
$RCSfile: imapsync,v $ $Revision: 2.229 $ $Date: 2022/09/14 18:08:24 $
Command line used, run by /usr/bin/perl:
/tmp/imapsync --host1 127.0.0.1 --port1 1143 --user1 tj@jongsma.me --password1 MASKED --tls1 --host2 100.70.148.118 --port2 993 --user2 tj --password2 MASKED --ssl2 --authmech2 PLAIN --justfolders --dry
Temp directory is /tmp ( to change it use --tmpdir dirpath )
kill -QUIT 3876230 # special behavior: call to sub catch_exit
kill -TERM 3876230 # special behavior: call to sub catch_exit
kill -INT 3876230 # special behavior: call to sub catch_reconnect
kill -HUP 3876230 # special behavior: call to sub catch_print
kill -USR1 3876230 # special behavior: call to sub toggle_sleep
File /tmp/imapsync.pid does not exist
PID file is /tmp/imapsync.pid ( to change it, use --pidfile filepath ; to avoid it use --pidfile "" )
Writing my PID 3876230 in /tmp/imapsync.pid
Writing also my logfile name in /tmp/imapsync.pid : LOG_imapsync/2026_02_17_03_30_59_959_tj@jongsma.me_tj.txt
Modules version list ( use --no-modulesversion to turn off printing this Perl modules list ):
Authen::NTLM 1.09
CGI 4.63
Compress::Zlib 2.204
Crypt::OpenSSL::RSA 0.33
Data::Uniqid 0.12
Digest::HMAC_MD5 1.04
Digest::HMAC_SHA1 1.04
Digest::MD5 2.58_01
Encode 3.19
Encode::IMAPUTF7 1.07
File::Copy::Recursive 0.45
File::Spec 3.88
Getopt::Long 2.54
HTML::Entities 3.81
IO::Socket 1.52
IO::Socket::INET 1.52
IO::Socket::INET6 2.73
IO::Socket::IP 0.4101
IO::Socket::SSL 2.085
IO::Tee 0.65
JSON 4.10
JSON::WebToken 0.10
LWP 6.76
MIME::Base64 3.16_01
Mail::IMAPClient 3.43
Net::Ping 2.76
Net::SSLeay 1.94
Term::ReadKey 2.38
Test::MockObject Not installed
Time::HiRes 1.9775
URI::Escape 5.27
Unicode::String 2.10
Info: will resync flags for already transferred messages. Use --noresyncflags to not resync flags.
SSL debug mode level is --debugssl 1 (can be set from 0 meaning no debug to 4 meaning max debug)
Host2: SSL default mode is like --sslargs2 "SSL_verify_mode=0", meaning for host2 SSL_VERIFY_NONE, ie, do not check the server certificate.
Host2: Use --sslargs2 SSL_verify_mode=1 to have SSL_VERIFY_PEER, ie, check the server certificate. of host2
Info: turned ON syncinternaldates, will set the internal dates (arrival dates) on host2 same as host1.
Host1: will try to use LOGIN authentication on host1
Host2: will try to use PLAIN authentication on host2
Host1: imap connection timeout is 120 seconds
Host2: imap connection timeout is 120 seconds
Host1: imap connection keepalive is on on host1. Use --nokeepalive1 to disable it.
Host2: imap connection keepalive is on on host2. Use --nokeepalive2 to disable it.
Host1: IMAP server [127.0.0.1] port [1143] user [tj@jongsma.me]
Host2: IMAP server [100.70.148.118] port [993] user [tj]
Host1: connecting and login on host1 [127.0.0.1] port [1143] with user [tj@jongsma.me]
Host1 IP address: 127.0.0.1 Local IP address: 127.0.0.1
Host1 banner: * OK [CAPABILITY AUTH=PLAIN ID IDLE IMAP4rev1 MOVE STARTTLS UIDPLUS UNSELECT] Proton Mail Bridge 03.21.02 - gluon session ID 1195
Host1 capability before authentication: AUTH=PLAIN ID IDLE IMAP4rev1 STARTTLS AUTH
Host1: Socket successfully converted to SSL
Host1: success login on [127.0.0.1] with user [tj@jongsma.me] auth [LOGIN] or [LOGIN]
Host2: connecting and login on host2 [100.70.148.118] port [993] with user [tj]
Host2 IP address: 100.70.148.118 Local IP address: 100.117.7.9
Host2 banner: * OK [CAPABILITY IMAP4rev2 IMAP4rev1 ENABLE SASL-IR LITERAL+ ID UTF8=ACCEPT JMAPACCESS AUTH=PLAIN AUTH=OAUTHBEARER AUTH=XOAUTH2] Stalwart IMAP4rev2 at your service.
Host2 capability before authentication: IMAP4rev2 IMAP4rev1 ENABLE SASL-IR LITERAL+ ID UTF8=ACCEPT JMAPACCESS AUTH=PLAIN AUTH=OAUTHBEARER AUTH=XOAUTH2 UTF8 AUTH
Host2: 100.70.148.118 says it has CAPABILITY for AUTHENTICATE PLAIN
Host2 failure: Error login on [100.70.148.118] with user [tj] auth [PLAIN]: 2 NO [AUTHENTICATIONFAILED] Invalid SASL challenge.
Host2 info: trying LOGIN Auth mechanism on [100.70.148.118] with user [tj]. Use option --notrylogin to avoid this second chance to login via LOGIN auth
Host2 failure: Error login on [100.70.148.118] with user [tj] auth [LOGIN]: 3 NO [AUTHENTICATIONFAILED] Authentication failed
Host2: failed login on [100.70.148.118] with user [tj] auth [PLAIN]
++++ Listing 2 errors encountered during the sync ( avoid this listing with --noerrorsdump ).
Err 1/2: Host2 failure: Error login on [100.70.148.118] with user [tj] auth [PLAIN]: 2 NO [AUTHENTICATIONFAILED] Invalid SASL challenge.
Err 2/2: Host2 failure: Error login on [100.70.148.118] with user [tj] auth [LOGIN]: 3 NO [AUTHENTICATIONFAILED] Authentication failed
The most frequent error is ERR_AUTHENTICATION_FAILURE_USER2. Check the credentials for tj.
Exiting with return value 162 (EXIT_AUTHENTICATION_FAILURE_USER2) 2/50 nb_errors/max_errors PID 3876230
Removing pidfile /tmp/imapsync.pid
Disconnecting from host1 127.0.0.1 user1 tj@jongsma.me
Log file is LOG_imapsync/2026_02_17_03_30_59_959_tj@jongsma.me_tj.txt ( to change it, use --logfile filepath ; or use --nolog to turn off logging )

View File

@ -0,0 +1,89 @@
Here is imapsync 2.229 on host forge, a linux system with 0.8/62.7 free GiB of RAM, 18.21% used by processes.
with Perl 5.38.2 and Mail::IMAPClient 3.43
Transfer started at Tuesday 17 February 2026-02-17 03:37:46 -0500 EST
PID is 3878866 my PPID is 3878864
Log file is LOG_imapsync/2026_02_17_03_37_46_775_tj@jongsma.me_tj.txt ( to change it, use --logfile path ; or use --nolog to turn off logging )
Load is 0.51 0.63 0.57 2/1210 on 8 cores
Current directory is /home/johan/clawd
Real user id is johan (uid 1000)
Effective user id is johan (euid 1000)
$RCSfile: imapsync,v $ $Revision: 2.229 $ $Date: 2022/09/14 18:08:24 $
Command line used, run by /usr/bin/perl:
/tmp/imapsync --host1 127.0.0.1 --port1 1143 --user1 tj@jongsma.me --password1 MASKED --tls1 --host2 100.70.148.118 --port2 993 --user2 tj --password2 MASKED --ssl2 --sslargs2 SSL_verify_mode=0 --justfolders --dry
Temp directory is /tmp ( to change it use --tmpdir dirpath )
kill -QUIT 3878866 # special behavior: call to sub catch_exit
kill -TERM 3878866 # special behavior: call to sub catch_exit
kill -INT 3878866 # special behavior: call to sub catch_reconnect
kill -HUP 3878866 # special behavior: call to sub catch_print
kill -USR1 3878866 # special behavior: call to sub toggle_sleep
File /tmp/imapsync.pid does not exist
PID file is /tmp/imapsync.pid ( to change it, use --pidfile filepath ; to avoid it use --pidfile "" )
Writing my PID 3878866 in /tmp/imapsync.pid
Writing also my logfile name in /tmp/imapsync.pid : LOG_imapsync/2026_02_17_03_37_46_775_tj@jongsma.me_tj.txt
Modules version list ( use --no-modulesversion to turn off printing this Perl modules list ):
Authen::NTLM 1.09
CGI 4.63
Compress::Zlib 2.204
Crypt::OpenSSL::RSA 0.33
Data::Uniqid 0.12
Digest::HMAC_MD5 1.04
Digest::HMAC_SHA1 1.04
Digest::MD5 2.58_01
Encode 3.19
Encode::IMAPUTF7 1.07
File::Copy::Recursive 0.45
File::Spec 3.88
Getopt::Long 2.54
HTML::Entities 3.81
IO::Socket 1.52
IO::Socket::INET 1.52
IO::Socket::INET6 2.73
IO::Socket::IP 0.4101
IO::Socket::SSL 2.085
IO::Tee 0.65
JSON 4.10
JSON::WebToken 0.10
LWP 6.76
MIME::Base64 3.16_01
Mail::IMAPClient 3.43
Net::Ping 2.76
Net::SSLeay 1.94
Term::ReadKey 2.38
Test::MockObject Not installed
Time::HiRes 1.9775
URI::Escape 5.27
Unicode::String 2.10
Info: will resync flags for already transferred messages. Use --noresyncflags to not resync flags.
SSL debug mode level is --debugssl 1 (can be set from 0 meaning no debug to 4 meaning max debug)
Host2: SSL default mode is like --sslargs2 "SSL_verify_mode=0", meaning for host2 SSL_VERIFY_NONE, ie, do not check the server certificate.
Host2: Use --sslargs2 SSL_verify_mode=1 to have SSL_VERIFY_PEER, ie, check the server certificate. of host2
Info: turned ON syncinternaldates, will set the internal dates (arrival dates) on host2 same as host1.
Host1: will try to use LOGIN authentication on host1
Host2: will try to use LOGIN authentication on host2
Host1: imap connection timeout is 120 seconds
Host2: imap connection timeout is 120 seconds
Host1: imap connection keepalive is on on host1. Use --nokeepalive1 to disable it.
Host2: imap connection keepalive is on on host2. Use --nokeepalive2 to disable it.
Host1: IMAP server [127.0.0.1] port [1143] user [tj@jongsma.me]
Host2: IMAP server [100.70.148.118] port [993] user [tj]
Host1: connecting and login on host1 [127.0.0.1] port [1143] with user [tj@jongsma.me]
Host1 IP address: 127.0.0.1 Local IP address: 127.0.0.1
Host1 banner: * OK [CAPABILITY AUTH=PLAIN ID IDLE IMAP4rev1 MOVE STARTTLS UIDPLUS UNSELECT] Proton Mail Bridge 03.21.02 - gluon session ID 1196
Host1 capability before authentication: AUTH=PLAIN ID IDLE IMAP4rev1 STARTTLS AUTH
Host1: Socket successfully converted to SSL
Host1: success login on [127.0.0.1] with user [tj@jongsma.me] auth [LOGIN] or [LOGIN]
Host2: connecting and login on host2 [100.70.148.118] port [993] with user [tj]
Host2 IP address: 100.70.148.118 Local IP address: 100.117.7.9
Host2 banner: * OK [CAPABILITY IMAP4rev2 IMAP4rev1 ENABLE SASL-IR LITERAL+ ID UTF8=ACCEPT JMAPACCESS AUTH=PLAIN AUTH=OAUTHBEARER AUTH=XOAUTH2] Stalwart IMAP4rev2 at your service.
Host2 capability before authentication: IMAP4rev2 IMAP4rev1 ENABLE SASL-IR LITERAL+ ID UTF8=ACCEPT JMAPACCESS AUTH=PLAIN AUTH=OAUTHBEARER AUTH=XOAUTH2 UTF8 AUTH
Host2 info: authmech [LOGIN] user [tj] authuser [] IsUnconnected []
Host2 failure: Error login on [100.70.148.118] with user [tj] auth [LOGIN]: 2 NO [AUTHENTICATIONFAILED] Authentication failed
Host2: failed login on [100.70.148.118] with user [tj] auth [LOGIN]
++++ Listing 1 errors encountered during the sync ( avoid this listing with --noerrorsdump ).
Err 1/1: Host2 failure: Error login on [100.70.148.118] with user [tj] auth [LOGIN]: 2 NO [AUTHENTICATIONFAILED] Authentication failed
The most frequent error is ERR_AUTHENTICATION_FAILURE_USER2. Check the credentials for tj.
Exiting with return value 162 (EXIT_AUTHENTICATION_FAILURE_USER2) 1/50 nb_errors/max_errors PID 3878866
Removing pidfile /tmp/imapsync.pid
Disconnecting from host1 127.0.0.1 user1 tj@jongsma.me
Log file is LOG_imapsync/2026_02_17_03_37_46_775_tj@jongsma.me_tj.txt ( to change it, use --logfile filepath ; or use --nolog to turn off logging )

View File

@ -0,0 +1,92 @@
Here is imapsync 2.229 on host forge, a linux system with 0.8/62.7 free GiB of RAM, 18.20% used by processes.
with Perl 5.38.2 and Mail::IMAPClient 3.43
Transfer started at Tuesday 17 February 2026-02-17 03:38:30 -0500 EST
PID is 3879201 my PPID is 3879200
Log file is LOG_imapsync/2026_02_17_03_38_30_911_tj@jongsma.me_tj.txt ( to change it, use --logfile path ; or use --nolog to turn off logging )
Load is 0.40 0.59 0.56 1/1213 on 8 cores
Current directory is /home/johan/clawd
Real user id is johan (uid 1000)
Effective user id is johan (euid 1000)
$RCSfile: imapsync,v $ $Revision: 2.229 $ $Date: 2022/09/14 18:08:24 $
Command line used, run by /usr/bin/perl:
/tmp/imapsync --host1 127.0.0.1 --port1 1143 --user1 tj@jongsma.me --password1 MASKED --tls1 --host2 100.70.148.118 --port2 993 --user2 tj --password2 MASKED --ssl2 --sslargs2 SSL_verify_mode=0 --authmech2 PLAIN --justfolders --dry
Temp directory is /tmp ( to change it use --tmpdir dirpath )
kill -QUIT 3879201 # special behavior: call to sub catch_exit
kill -TERM 3879201 # special behavior: call to sub catch_exit
kill -INT 3879201 # special behavior: call to sub catch_reconnect
kill -HUP 3879201 # special behavior: call to sub catch_print
kill -USR1 3879201 # special behavior: call to sub toggle_sleep
File /tmp/imapsync.pid does not exist
PID file is /tmp/imapsync.pid ( to change it, use --pidfile filepath ; to avoid it use --pidfile "" )
Writing my PID 3879201 in /tmp/imapsync.pid
Writing also my logfile name in /tmp/imapsync.pid : LOG_imapsync/2026_02_17_03_38_30_911_tj@jongsma.me_tj.txt
Modules version list ( use --no-modulesversion to turn off printing this Perl modules list ):
Authen::NTLM 1.09
CGI 4.63
Compress::Zlib 2.204
Crypt::OpenSSL::RSA 0.33
Data::Uniqid 0.12
Digest::HMAC_MD5 1.04
Digest::HMAC_SHA1 1.04
Digest::MD5 2.58_01
Encode 3.19
Encode::IMAPUTF7 1.07
File::Copy::Recursive 0.45
File::Spec 3.88
Getopt::Long 2.54
HTML::Entities 3.81
IO::Socket 1.52
IO::Socket::INET 1.52
IO::Socket::INET6 2.73
IO::Socket::IP 0.4101
IO::Socket::SSL 2.085
IO::Tee 0.65
JSON 4.10
JSON::WebToken 0.10
LWP 6.76
MIME::Base64 3.16_01
Mail::IMAPClient 3.43
Net::Ping 2.76
Net::SSLeay 1.94
Term::ReadKey 2.38
Test::MockObject Not installed
Time::HiRes 1.9775
URI::Escape 5.27
Unicode::String 2.10
Info: will resync flags for already transferred messages. Use --noresyncflags to not resync flags.
SSL debug mode level is --debugssl 1 (can be set from 0 meaning no debug to 4 meaning max debug)
Host2: SSL default mode is like --sslargs2 "SSL_verify_mode=0", meaning for host2 SSL_VERIFY_NONE, ie, do not check the server certificate.
Host2: Use --sslargs2 SSL_verify_mode=1 to have SSL_VERIFY_PEER, ie, check the server certificate. of host2
Info: turned ON syncinternaldates, will set the internal dates (arrival dates) on host2 same as host1.
Host1: will try to use LOGIN authentication on host1
Host2: will try to use PLAIN authentication on host2
Host1: imap connection timeout is 120 seconds
Host2: imap connection timeout is 120 seconds
Host1: imap connection keepalive is on on host1. Use --nokeepalive1 to disable it.
Host2: imap connection keepalive is on on host2. Use --nokeepalive2 to disable it.
Host1: IMAP server [127.0.0.1] port [1143] user [tj@jongsma.me]
Host2: IMAP server [100.70.148.118] port [993] user [tj]
Host1: connecting and login on host1 [127.0.0.1] port [1143] with user [tj@jongsma.me]
Host1 IP address: 127.0.0.1 Local IP address: 127.0.0.1
Host1 banner: * OK [CAPABILITY AUTH=PLAIN ID IDLE IMAP4rev1 MOVE STARTTLS UIDPLUS UNSELECT] Proton Mail Bridge 03.21.02 - gluon session ID 1197
Host1 capability before authentication: AUTH=PLAIN ID IDLE IMAP4rev1 STARTTLS AUTH
Host1: Socket successfully converted to SSL
Host1: success login on [127.0.0.1] with user [tj@jongsma.me] auth [LOGIN] or [LOGIN]
Host2: connecting and login on host2 [100.70.148.118] port [993] with user [tj]
Host2 IP address: 100.70.148.118 Local IP address: 100.117.7.9
Host2 banner: * OK [CAPABILITY IMAP4rev2 IMAP4rev1 ENABLE SASL-IR LITERAL+ ID UTF8=ACCEPT JMAPACCESS AUTH=PLAIN AUTH=OAUTHBEARER AUTH=XOAUTH2] Stalwart IMAP4rev2 at your service.
Host2 capability before authentication: IMAP4rev2 IMAP4rev1 ENABLE SASL-IR LITERAL+ ID UTF8=ACCEPT JMAPACCESS AUTH=PLAIN AUTH=OAUTHBEARER AUTH=XOAUTH2 UTF8 AUTH
Host2: 100.70.148.118 says it has CAPABILITY for AUTHENTICATE PLAIN
Host2 failure: Error login on [100.70.148.118] with user [tj] auth [PLAIN]: 2 NO [AUTHENTICATIONFAILED] Invalid SASL challenge.
Host2 info: trying LOGIN Auth mechanism on [100.70.148.118] with user [tj]. Use option --notrylogin to avoid this second chance to login via LOGIN auth
Host2 failure: Error login on [100.70.148.118] with user [tj] auth [LOGIN]: 3 NO [AUTHENTICATIONFAILED] Authentication failed
Host2: failed login on [100.70.148.118] with user [tj] auth [PLAIN]
++++ Listing 2 errors encountered during the sync ( avoid this listing with --noerrorsdump ).
Err 1/2: Host2 failure: Error login on [100.70.148.118] with user [tj] auth [PLAIN]: 2 NO [AUTHENTICATIONFAILED] Invalid SASL challenge.
Err 2/2: Host2 failure: Error login on [100.70.148.118] with user [tj] auth [LOGIN]: 3 NO [AUTHENTICATIONFAILED] Authentication failed
The most frequent error is ERR_AUTHENTICATION_FAILURE_USER2. Check the credentials for tj.
Exiting with return value 162 (EXIT_AUTHENTICATION_FAILURE_USER2) 2/50 nb_errors/max_errors PID 3879201
Removing pidfile /tmp/imapsync.pid
Disconnecting from host1 127.0.0.1 user1 tj@jongsma.me
Log file is LOG_imapsync/2026_02_17_03_38_30_911_tj@jongsma.me_tj.txt ( to change it, use --logfile filepath ; or use --nolog to turn off logging )

View File

@ -0,0 +1,89 @@
Here is imapsync 2.229 on host forge, a linux system with 0.8/62.7 free GiB of RAM, 18.20% used by processes.
with Perl 5.38.2 and Mail::IMAPClient 3.43
Transfer started at Tuesday 17 February 2026-02-17 03:38:38 -0500 EST
PID is 3879253 my PPID is 3879252
Log file is LOG_imapsync/2026_02_17_03_38_38_608_tj@jongsma.me_tj.txt ( to change it, use --logfile path ; or use --nolog to turn off logging )
Load is 0.34 0.57 0.55 1/1212 on 8 cores
Current directory is /home/johan/clawd
Real user id is johan (uid 1000)
Effective user id is johan (euid 1000)
$RCSfile: imapsync,v $ $Revision: 2.229 $ $Date: 2022/09/14 18:08:24 $
Command line used, run by /usr/bin/perl:
/tmp/imapsync --host1 127.0.0.1 --port1 1143 --user1 tj@jongsma.me --passfile1 /tmp/pw1.txt --tls1 --host2 100.70.148.118 --port2 993 --user2 tj --passfile2 /tmp/pw2.txt --ssl2 --sslargs2 SSL_verify_mode=0 --justfolders --dry
Temp directory is /tmp ( to change it use --tmpdir dirpath )
kill -QUIT 3879253 # special behavior: call to sub catch_exit
kill -TERM 3879253 # special behavior: call to sub catch_exit
kill -INT 3879253 # special behavior: call to sub catch_reconnect
kill -HUP 3879253 # special behavior: call to sub catch_print
kill -USR1 3879253 # special behavior: call to sub toggle_sleep
File /tmp/imapsync.pid does not exist
PID file is /tmp/imapsync.pid ( to change it, use --pidfile filepath ; to avoid it use --pidfile "" )
Writing my PID 3879253 in /tmp/imapsync.pid
Writing also my logfile name in /tmp/imapsync.pid : LOG_imapsync/2026_02_17_03_38_38_608_tj@jongsma.me_tj.txt
Modules version list ( use --no-modulesversion to turn off printing this Perl modules list ):
Authen::NTLM 1.09
CGI 4.63
Compress::Zlib 2.204
Crypt::OpenSSL::RSA 0.33
Data::Uniqid 0.12
Digest::HMAC_MD5 1.04
Digest::HMAC_SHA1 1.04
Digest::MD5 2.58_01
Encode 3.19
Encode::IMAPUTF7 1.07
File::Copy::Recursive 0.45
File::Spec 3.88
Getopt::Long 2.54
HTML::Entities 3.81
IO::Socket 1.52
IO::Socket::INET 1.52
IO::Socket::INET6 2.73
IO::Socket::IP 0.4101
IO::Socket::SSL 2.085
IO::Tee 0.65
JSON 4.10
JSON::WebToken 0.10
LWP 6.76
MIME::Base64 3.16_01
Mail::IMAPClient 3.43
Net::Ping 2.76
Net::SSLeay 1.94
Term::ReadKey 2.38
Test::MockObject Not installed
Time::HiRes 1.9775
URI::Escape 5.27
Unicode::String 2.10
Info: will resync flags for already transferred messages. Use --noresyncflags to not resync flags.
SSL debug mode level is --debugssl 1 (can be set from 0 meaning no debug to 4 meaning max debug)
Host2: SSL default mode is like --sslargs2 "SSL_verify_mode=0", meaning for host2 SSL_VERIFY_NONE, ie, do not check the server certificate.
Host2: Use --sslargs2 SSL_verify_mode=1 to have SSL_VERIFY_PEER, ie, check the server certificate. of host2
Info: turned ON syncinternaldates, will set the internal dates (arrival dates) on host2 same as host1.
Host1: will try to use LOGIN authentication on host1
Host2: will try to use LOGIN authentication on host2
Host1: imap connection timeout is 120 seconds
Host2: imap connection timeout is 120 seconds
Host1: imap connection keepalive is on on host1. Use --nokeepalive1 to disable it.
Host2: imap connection keepalive is on on host2. Use --nokeepalive2 to disable it.
Host1: IMAP server [127.0.0.1] port [1143] user [tj@jongsma.me]
Host2: IMAP server [100.70.148.118] port [993] user [tj]
Host1: connecting and login on host1 [127.0.0.1] port [1143] with user [tj@jongsma.me]
Host1 IP address: 127.0.0.1 Local IP address: 127.0.0.1
Host1 banner: * OK [CAPABILITY AUTH=PLAIN ID IDLE IMAP4rev1 MOVE STARTTLS UIDPLUS UNSELECT] Proton Mail Bridge 03.21.02 - gluon session ID 1198
Host1 capability before authentication: AUTH=PLAIN ID IDLE IMAP4rev1 STARTTLS AUTH
Host1: Socket successfully converted to SSL
Host1: success login on [127.0.0.1] with user [tj@jongsma.me] auth [LOGIN] or [LOGIN]
Host2: connecting and login on host2 [100.70.148.118] port [993] with user [tj]
Host2 IP address: 100.70.148.118 Local IP address: 100.117.7.9
Host2 banner: * OK [CAPABILITY IMAP4rev2 IMAP4rev1 ENABLE SASL-IR LITERAL+ ID UTF8=ACCEPT JMAPACCESS AUTH=PLAIN AUTH=OAUTHBEARER AUTH=XOAUTH2] Stalwart IMAP4rev2 at your service.
Host2 capability before authentication: IMAP4rev2 IMAP4rev1 ENABLE SASL-IR LITERAL+ ID UTF8=ACCEPT JMAPACCESS AUTH=PLAIN AUTH=OAUTHBEARER AUTH=XOAUTH2 UTF8 AUTH
Host2 info: authmech [LOGIN] user [tj] authuser [] IsUnconnected []
Host2 failure: Error login on [100.70.148.118] with user [tj] auth [LOGIN]: 2 NO [AUTHENTICATIONFAILED] Authentication failed
Host2: failed login on [100.70.148.118] with user [tj] auth [LOGIN]
++++ Listing 1 errors encountered during the sync ( avoid this listing with --noerrorsdump ).
Err 1/1: Host2 failure: Error login on [100.70.148.118] with user [tj] auth [LOGIN]: 2 NO [AUTHENTICATIONFAILED] Authentication failed
The most frequent error is ERR_AUTHENTICATION_FAILURE_USER2. Check the credentials for tj.
Exiting with return value 162 (EXIT_AUTHENTICATION_FAILURE_USER2) 1/50 nb_errors/max_errors PID 3879253
Removing pidfile /tmp/imapsync.pid
Disconnecting from host1 127.0.0.1 user1 tj@jongsma.me
Log file is LOG_imapsync/2026_02_17_03_38_38_608_tj@jongsma.me_tj.txt ( to change it, use --logfile filepath ; or use --nolog to turn off logging )

View File

@ -0,0 +1,89 @@
Here is imapsync 2.229 on host forge, a linux system with 0.8/62.7 free GiB of RAM, 18.18% used by processes.
with Perl 5.38.2 and Mail::IMAPClient 3.43
Transfer started at Tuesday 17 February 2026-02-17 03:39:16 -0500 EST
PID is 3879506 my PPID is 3879505
Log file is LOG_imapsync/2026_02_17_03_39_16_524_tj@jongsma.me_tj.txt ( to change it, use --logfile path ; or use --nolog to turn off logging )
Load is 0.43 0.57 0.55 1/1211 on 8 cores
Current directory is /home/johan/clawd
Real user id is johan (uid 1000)
Effective user id is johan (euid 1000)
$RCSfile: imapsync,v $ $Revision: 2.229 $ $Date: 2022/09/14 18:08:24 $
Command line used, run by /usr/bin/perl:
/tmp/imapsync --host1 127.0.0.1 --port1 1143 --user1 tj@jongsma.me --passfile1 /tmp/pw1.txt --tls1 --host2 100.70.148.118 --port2 993 --user2 tj --passfile2 /tmp/pw2.txt --ssl2 --sslargs2 SSL_verify_mode=0 --justfolders --dry
Temp directory is /tmp ( to change it use --tmpdir dirpath )
kill -QUIT 3879506 # special behavior: call to sub catch_exit
kill -TERM 3879506 # special behavior: call to sub catch_exit
kill -INT 3879506 # special behavior: call to sub catch_reconnect
kill -HUP 3879506 # special behavior: call to sub catch_print
kill -USR1 3879506 # special behavior: call to sub toggle_sleep
File /tmp/imapsync.pid does not exist
PID file is /tmp/imapsync.pid ( to change it, use --pidfile filepath ; to avoid it use --pidfile "" )
Writing my PID 3879506 in /tmp/imapsync.pid
Writing also my logfile name in /tmp/imapsync.pid : LOG_imapsync/2026_02_17_03_39_16_524_tj@jongsma.me_tj.txt
Modules version list ( use --no-modulesversion to turn off printing this Perl modules list ):
Authen::NTLM 1.09
CGI 4.63
Compress::Zlib 2.204
Crypt::OpenSSL::RSA 0.33
Data::Uniqid 0.12
Digest::HMAC_MD5 1.04
Digest::HMAC_SHA1 1.04
Digest::MD5 2.58_01
Encode 3.19
Encode::IMAPUTF7 1.07
File::Copy::Recursive 0.45
File::Spec 3.88
Getopt::Long 2.54
HTML::Entities 3.81
IO::Socket 1.52
IO::Socket::INET 1.52
IO::Socket::INET6 2.73
IO::Socket::IP 0.4101
IO::Socket::SSL 2.085
IO::Tee 0.65
JSON 4.10
JSON::WebToken 0.10
LWP 6.76
MIME::Base64 3.16_01
Mail::IMAPClient 3.43
Net::Ping 2.76
Net::SSLeay 1.94
Term::ReadKey 2.38
Test::MockObject Not installed
Time::HiRes 1.9775
URI::Escape 5.27
Unicode::String 2.10
Info: will resync flags for already transferred messages. Use --noresyncflags to not resync flags.
SSL debug mode level is --debugssl 1 (can be set from 0 meaning no debug to 4 meaning max debug)
Host2: SSL default mode is like --sslargs2 "SSL_verify_mode=0", meaning for host2 SSL_VERIFY_NONE, ie, do not check the server certificate.
Host2: Use --sslargs2 SSL_verify_mode=1 to have SSL_VERIFY_PEER, ie, check the server certificate. of host2
Info: turned ON syncinternaldates, will set the internal dates (arrival dates) on host2 same as host1.
Host1: will try to use LOGIN authentication on host1
Host2: will try to use LOGIN authentication on host2
Host1: imap connection timeout is 120 seconds
Host2: imap connection timeout is 120 seconds
Host1: imap connection keepalive is on on host1. Use --nokeepalive1 to disable it.
Host2: imap connection keepalive is on on host2. Use --nokeepalive2 to disable it.
Host1: IMAP server [127.0.0.1] port [1143] user [tj@jongsma.me]
Host2: IMAP server [100.70.148.118] port [993] user [tj]
Host1: connecting and login on host1 [127.0.0.1] port [1143] with user [tj@jongsma.me]
Host1 IP address: 127.0.0.1 Local IP address: 127.0.0.1
Host1 banner: * OK [CAPABILITY AUTH=PLAIN ID IDLE IMAP4rev1 MOVE STARTTLS UIDPLUS UNSELECT] Proton Mail Bridge 03.21.02 - gluon session ID 1199
Host1 capability before authentication: AUTH=PLAIN ID IDLE IMAP4rev1 STARTTLS AUTH
Host1: Socket successfully converted to SSL
Host1: success login on [127.0.0.1] with user [tj@jongsma.me] auth [LOGIN] or [LOGIN]
Host2: connecting and login on host2 [100.70.148.118] port [993] with user [tj]
Host2 IP address: 100.70.148.118 Local IP address: 100.117.7.9
Host2 banner: * OK [CAPABILITY IMAP4rev2 IMAP4rev1 ENABLE SASL-IR LITERAL+ ID UTF8=ACCEPT JMAPACCESS AUTH=PLAIN AUTH=OAUTHBEARER AUTH=XOAUTH2] Stalwart IMAP4rev2 at your service.
Host2 capability before authentication: IMAP4rev2 IMAP4rev1 ENABLE SASL-IR LITERAL+ ID UTF8=ACCEPT JMAPACCESS AUTH=PLAIN AUTH=OAUTHBEARER AUTH=XOAUTH2 UTF8 AUTH
Host2 info: authmech [LOGIN] user [tj] authuser [] IsUnconnected []
Host2 failure: Error login on [100.70.148.118] with user [tj] auth [LOGIN]: 2 NO [AUTHENTICATIONFAILED] Authentication failed
Host2: failed login on [100.70.148.118] with user [tj] auth [LOGIN]
++++ Listing 1 errors encountered during the sync ( avoid this listing with --noerrorsdump ).
Err 1/1: Host2 failure: Error login on [100.70.148.118] with user [tj] auth [LOGIN]: 2 NO [AUTHENTICATIONFAILED] Authentication failed
The most frequent error is ERR_AUTHENTICATION_FAILURE_USER2. Check the credentials for tj.
Exiting with return value 162 (EXIT_AUTHENTICATION_FAILURE_USER2) 1/50 nb_errors/max_errors PID 3879506
Removing pidfile /tmp/imapsync.pid
Disconnecting from host1 127.0.0.1 user1 tj@jongsma.me
Log file is LOG_imapsync/2026_02_17_03_39_16_524_tj@jongsma.me_tj.txt ( to change it, use --logfile filepath ; or use --nolog to turn off logging )

View File

@ -0,0 +1,743 @@
Here is imapsync 2.229 on host forge, a linux system with 0.8/62.7 free GiB of RAM, 18.22% used by processes.
with Perl 5.38.2 and Mail::IMAPClient 3.43
Transfer started at Tuesday 17 February 2026-02-17 03:40:11 -0500 EST
PID is 3879873 my PPID is 3879852
Log file is LOG_imapsync/2026_02_17_03_40_11_953_tj@jongsma.me_tj.txt ( to change it, use --logfile path ; or use --nolog to turn off logging )
Load is 0.75 0.65 0.58 1/1214 on 8 cores
Current directory is /home/johan/clawd
Real user id is johan (uid 1000)
Effective user id is johan (euid 1000)
$RCSfile: imapsync,v $ $Revision: 2.229 $ $Date: 2022/09/14 18:08:24 $
Command line used, run by /usr/bin/perl:
/tmp/imapsync --host1 127.0.0.1 --port1 1143 --user1 tj@jongsma.me --passfile1 /tmp/pw1.txt --tls1 --host2 127.0.0.1 --port2 9930 --user2 tj --passfile2 /tmp/pw2.txt --ssl2 --sslargs2 SSL_verify_mode=0 --justfolders --dry
Temp directory is /tmp ( to change it use --tmpdir dirpath )
kill -QUIT 3879873 # special behavior: call to sub catch_exit
kill -TERM 3879873 # special behavior: call to sub catch_exit
kill -INT 3879873 # special behavior: call to sub catch_reconnect
kill -HUP 3879873 # special behavior: call to sub catch_print
kill -USR1 3879873 # special behavior: call to sub toggle_sleep
File /tmp/imapsync.pid does not exist
PID file is /tmp/imapsync.pid ( to change it, use --pidfile filepath ; to avoid it use --pidfile "" )
Writing my PID 3879873 in /tmp/imapsync.pid
Writing also my logfile name in /tmp/imapsync.pid : LOG_imapsync/2026_02_17_03_40_11_953_tj@jongsma.me_tj.txt
Modules version list ( use --no-modulesversion to turn off printing this Perl modules list ):
Authen::NTLM 1.09
CGI 4.63
Compress::Zlib 2.204
Crypt::OpenSSL::RSA 0.33
Data::Uniqid 0.12
Digest::HMAC_MD5 1.04
Digest::HMAC_SHA1 1.04
Digest::MD5 2.58_01
Encode 3.19
Encode::IMAPUTF7 1.07
File::Copy::Recursive 0.45
File::Spec 3.88
Getopt::Long 2.54
HTML::Entities 3.81
IO::Socket 1.52
IO::Socket::INET 1.52
IO::Socket::INET6 2.73
IO::Socket::IP 0.4101
IO::Socket::SSL 2.085
IO::Tee 0.65
JSON 4.10
JSON::WebToken 0.10
LWP 6.76
MIME::Base64 3.16_01
Mail::IMAPClient 3.43
Net::Ping 2.76
Net::SSLeay 1.94
Term::ReadKey 2.38
Test::MockObject Not installed
Time::HiRes 1.9775
URI::Escape 5.27
Unicode::String 2.10
Info: will resync flags for already transferred messages. Use --noresyncflags to not resync flags.
SSL debug mode level is --debugssl 1 (can be set from 0 meaning no debug to 4 meaning max debug)
Host2: SSL default mode is like --sslargs2 "SSL_verify_mode=0", meaning for host2 SSL_VERIFY_NONE, ie, do not check the server certificate.
Host2: Use --sslargs2 SSL_verify_mode=1 to have SSL_VERIFY_PEER, ie, check the server certificate. of host2
Info: turned ON syncinternaldates, will set the internal dates (arrival dates) on host2 same as host1.
Host1: will try to use LOGIN authentication on host1
Host2: will try to use LOGIN authentication on host2
Host1: imap connection timeout is 120 seconds
Host2: imap connection timeout is 120 seconds
Host1: imap connection keepalive is on on host1. Use --nokeepalive1 to disable it.
Host2: imap connection keepalive is on on host2. Use --nokeepalive2 to disable it.
Host1: IMAP server [127.0.0.1] port [1143] user [tj@jongsma.me]
Host2: IMAP server [127.0.0.1] port [9930] user [tj]
Host1: connecting and login on host1 [127.0.0.1] port [1143] with user [tj@jongsma.me]
Host1 IP address: 127.0.0.1 Local IP address: 127.0.0.1
Host1 banner: * OK [CAPABILITY AUTH=PLAIN ID IDLE IMAP4rev1 MOVE STARTTLS UIDPLUS UNSELECT] Proton Mail Bridge 03.21.02 - gluon session ID 1200
Host1 capability before authentication: AUTH=PLAIN ID IDLE IMAP4rev1 STARTTLS AUTH
Host1: Socket successfully converted to SSL
Host1: success login on [127.0.0.1] with user [tj@jongsma.me] auth [LOGIN] or [LOGIN]
Host2: connecting and login on host2 [127.0.0.1] port [9930] with user [tj]
Host2 IP address: 127.0.0.1 Local IP address: 127.0.0.1
Host2 banner: * OK [CAPABILITY IMAP4rev2 IMAP4rev1 ENABLE SASL-IR LITERAL+ ID UTF8=ACCEPT JMAPACCESS AUTH=PLAIN AUTH=OAUTHBEARER AUTH=XOAUTH2] Stalwart IMAP4rev2 at your service.
Host2 capability before authentication: IMAP4rev2 IMAP4rev1 ENABLE SASL-IR LITERAL+ ID UTF8=ACCEPT JMAPACCESS AUTH=PLAIN AUTH=OAUTHBEARER AUTH=XOAUTH2 UTF8 AUTH
Host2: success login on [127.0.0.1] with user [tj] auth [LOGIN] or [LOGIN]
Host1: state Authenticated
Host2: state Authenticated
Host1 capability once authenticated: AUTH=PLAIN ID IDLE IMAP4rev1 MOVE STARTTLS UIDPLUS UNSELECT AUTH
Host2 capability once authenticated: IMAP4rev2 IMAP4rev1 ENABLE SASL-IR LITERAL+ ID UTF8=ACCEPT JMAPACCESS IDLE NAMESPACE CHILDREN MULTIAPPEND BINARY UNSELECT ACL UIDPLUS ESEARCH WITHIN SEARCHRES SORT THREAD=REFERENCES LIST-EXTENDED LIST-STATUS ESORT SORT=DISPLAY SPECIAL-USE CREATE-SPECIAL-USE MOVE CONDSTORE QRESYNC UNAUTHENTICATE STATUS=SIZE OBJECTID PREVIEW QUOTA QUOTA=RES-STORAGE UTF8 THREAD STATUS
Host1: found ID capability. Sending/receiving ID, presented in raw IMAP for now.
In order to avoid sending/receiving ID, use option --noid
Sending: 6 ID ("name" "imapsync" "version" "2.229" "os" "linux" "vendor" "Gilles LAMIRAL" "support-url" "https://imapsync.lamiral.info/" "date" "14-Sep-2022 18:08:24 +0000" "side" "host1")
Sent 181 bytes
Read: * ID ("name" "Proton Mail Bridge" "version" "03.21.02" "os" "linux" "vendor" "TODO" "support-url" "TODO")
Read: 6 OK ID
Host2: found ID capability. Sending/receiving ID, presented in raw IMAP for now.
In order to avoid sending/receiving ID, use option --noid
Sending: 4 ID ("name" "imapsync" "version" "2.229" "os" "linux" "vendor" "Gilles LAMIRAL" "support-url" "https://imapsync.lamiral.info/" "date" "14-Sep-2022 18:08:24 +0000" "side" "host2")
Sent 181 bytes
Read: * ID ("name" "Stalwart" "version" "1.0.0" "vendor" "Stalwart Labs LLC" "support-url" "https://stalw.art")
4 OK ID completed
Host2: QUOTA capability found, presented in raw IMAP on next lines
Sending: 5 GETQUOTAROOT INBOX
Sent 22 bytes
Read: * QUOTAROOT "INBOX" "#21"
* QUOTA "#21" ()
5 OK GETQUOTAROOT successful.
Host2: Quota current storage is 0 bytes. Limit is 0 bytes. So 0 % full
Host1: Compression is off. Use --compress1 to allow compression on host1
Host2: Compression is off. Use --compress2 to allow compression on host2
Host1: found 42 folders.
Host2: found 5 folders.
Host1: guessing separator from folder listing: [/]
Host1: No NAMESPACE capability, so using guessed separator [/]
You can set the separator character with the --sep1 option,
the complete listing of folders may help you to find it
[Labels/INBOX-Shopping]
[Labels/MPD]
[Labels/INBOX-129 Bay Point]
[Folders/Archived/2024]
[Folders/Finance]
[Folders/Sophia's recovery]
[Folders/Archived/2019]
[Folders/Archived/2015]
[Folders/Archived/2017]
[Folders/Archived/2020]
[Starred]
[Folders/Archived/2016]
[Labels/Snoozed]
[Labels/bluehost]
[Labels/Amazon]
[Folders/Archived/2018]
[Labels/gmail 20-07-2021 14:06]
[Labels/Deleted Messages]
[Folders/Archived/2026]
[Labels/[Gmail]-Important]
[Labels/Sent Messages]
[INBOX]
[Folders/Archived/2022]
[Drafts]
[Labels/INBOX-Swimming]
[Sent]
[Spam]
[Folders/Archived]
[Folders/Archived/2025]
[Labels/EWI]
[Archive]
[Folders/Archived/2021]
[Trash]
[Folders/Archived/2023]
[Folders/Zavtra]
[Folders/Shopping]
[Folders/Archived/Unreported Truths]
[Labels/Notes]
[All Mail]
[Folders/Archived/2014]
[Labels/[Gmail]-Construction receipts]
[Folders/Archived/2013]
Host2: guessing separator from folder listing: [/]
Host2: separator given by NAMESPACE: [/]
Host1: guessing prefix from folder listing: []
Host1: No NAMESPACE capability so using guessed prefix []
You can set the prefix namespace with the --prefix1 option,
the folowing listing of folders may help you to find it:
[Folders/Zavtra]
[Folders/Archived/2016]
[Folders/Archived/2017]
[Folders/Archived/2026]
[All Mail]
[Folders/Archived/2024]
[Labels/INBOX-Shopping]
[Trash]
[Labels/Notes]
[Folders/Finance]
[Folders/Archived/2014]
[Labels/[Gmail]-Important]
[Labels/Amazon]
[Folders/Shopping]
[Drafts]
[Folders/Archived/Unreported Truths]
[Spam]
[Folders/Archived/2019]
[Labels/MPD]
[Folders/Archived/2015]
[Folders/Archived/2020]
[Labels/bluehost]
[Labels/Snoozed]
[Sent]
[Labels/Deleted Messages]
[Folders/Archived/2021]
[Folders/Archived/2013]
[Labels/INBOX-129 Bay Point]
[INBOX]
[Labels/Sent Messages]
[Folders/Archived/2022]
[Folders/Archived]
[Starred]
[Folders/Archived/2025]
[Labels/EWI]
[Labels/gmail 20-07-2021 14:06]
[Labels/[Gmail]-Construction receipts]
[Folders/Archived/2023]
[Folders/Sophia's recovery]
[Labels/INBOX-Swimming]
[Folders/Archived/2018]
[Archive]
Host2: guessing prefix from folder listing: []
Host2: prefix given by NAMESPACE: []
Host1: separator and prefix: [/][]
Host2: separator and prefix: [/][]
Including all folders found by default. Use --subscribed or --folder or --folderrec or --include to select specific folders. Use --exclude to unselect specific folders.
Host1: Checking wanted folders exist. Use --nocheckfoldersexist to avoid this check (shared of public namespace targeted).
Host1: Checking wanted folders are selectable. Use --nocheckselectable to avoid this check.
Turned off automapping folders ( use --automap to turn on automapping )
++++ Listing folders
All foldernames are presented between brackets like [X] where X is the foldername.
When a foldername contains non-ASCII characters it is presented in the form
[X] = [Y] where
X is the imap foldername you have to use in command line options and
Y is the utf8 output just printed for convenience, to recognize it.
Host1: folders list (first the raw imap format then the [X] = [Y]):
* LIST (\Flagged \Noinferiors \Unmarked) "/" "Starred"
* LIST (\Marked) "/" "Folders/Sophia's recovery"
* LIST (\Unmarked) "/" "Folders/Shopping"
* LIST (\Unmarked) "/" "Labels/MPD"
* LIST (\Marked) "/" "Folders/Archived/2022"
* LIST (\Marked) "/" "Folders/Archived/2023"
* LIST (\Unmarked) "/" "Labels/EWI"
* LIST (\Marked) "/" "Folders/Archived/2020"
* LIST (\Marked) "/" "Folders/Archived/2016"
* LIST (\Unmarked) "/" "Labels/INBOX-Swimming"
* LIST (\Drafts \Noinferiors \Unmarked) "/" "Drafts"
* LIST (\Marked) "/" "Folders/Archived/2025"
* LIST (\Unmarked) "/" "Labels/Snoozed"
* LIST (\Marked) "/" "Folders/Archived/2019"
* LIST (\Marked) "/" "Folders/Archived/2015"
* LIST (\Marked) "/" "Folders/Archived/Unreported Truths"
* LIST (\Marked \Noinferiors \Sent) "/" "Sent"
* LIST (\Marked) "/" "Folders/Archived/2024"
* LIST (\Unmarked) "/" "Labels/Sent Messages"
* LIST (\Unmarked) "/" "Labels/INBOX-129 Bay Point"
* LIST (\Unmarked) "/" "Labels/Amazon"
* LIST (\Unmarked) "/" "Folders/Zavtra"
* LIST (\Marked) "/" "Folders/Archived/2017"
* LIST (\Unmarked) "/" "Labels/[Gmail]-Construction receipts"
* LIST (\Unmarked) "/" "Labels/Deleted Messages"
* LIST (\Unmarked) "/" "Labels/Notes"
* LIST (\Noselect \Unmarked) "/" "Folders"
* LIST (\Unmarked) "/" "Labels/[Gmail]-Important"
* LIST (\Noinferiors \Unmarked) "/" "INBOX"
* LIST (\Archive \Marked \Noinferiors) "/" "Archive"
* LIST (\Marked) "/" "Folders/Archived/2026"
* LIST (\Unmarked) "/" "Labels/gmail 20-07-2021 14:06"
* LIST (\All \Marked \Noinferiors) "/" "All Mail"
* LIST (\Marked) "/" "Folders/Archived/2021"
* LIST (\Marked) "/" "Folders/Archived/2013"
* LIST (\Unmarked) "/" "Folders/Finance"
* LIST (\Unmarked) "/" "Labels/bluehost"
* LIST (\Marked) "/" "Folders/Archived/2018"
* LIST (\Unmarked) "/" "Labels/INBOX-Shopping"
* LIST (\Noselect \Unmarked) "/" "Labels"
* LIST (\Marked) "/" "Folders/Archived"
* LIST (\Noinferiors \Trash \Unmarked) "/" "Trash"
* LIST (\Junk \Marked \Noinferiors) "/" "Spam"
* LIST (\Marked) "/" "Folders/Archived/2014"
53 OK LIST
[All Mail]
[Archive]
[Drafts]
[Folders/Archived]
[Folders/Archived/2013]
[Folders/Archived/2014]
[Folders/Archived/2015]
[Folders/Archived/2016]
[Folders/Archived/2017]
[Folders/Archived/2018]
[Folders/Archived/2019]
[Folders/Archived/2020]
[Folders/Archived/2021]
[Folders/Archived/2022]
[Folders/Archived/2023]
[Folders/Archived/2024]
[Folders/Archived/2025]
[Folders/Archived/2026]
[Folders/Archived/Unreported Truths]
[Folders/Finance]
[Folders/Shopping]
[Folders/Sophia's recovery]
[Folders/Zavtra]
[INBOX]
[Labels/Amazon]
[Labels/Deleted Messages]
[Labels/EWI]
[Labels/INBOX-129 Bay Point]
[Labels/INBOX-Shopping]
[Labels/INBOX-Swimming]
[Labels/MPD]
[Labels/Notes]
[Labels/Sent Messages]
[Labels/Snoozed]
[Labels/[Gmail]-Construction receipts]
[Labels/[Gmail]-Important]
[Labels/bluehost]
[Labels/gmail 20-07-2021 14:06]
[Sent]
[Spam]
[Starred]
[Trash]
Host2: folders list (first the raw imap format then the [X] = [Y]):
* LIST (\Trash) "/" "Deleted Items"
* LIST (\Drafts) "/" "Drafts"
* LIST () "/" "INBOX"
* LIST (\Junk) "/" "Junk Mail"
* LIST (\Sent) "/" "Sent Items"
10 OK LIST completed
[Deleted Items]
[Drafts]
[INBOX]
[Junk Mail]
[Sent Items]
Folders in host2 not in host1:
[Sent Items]
[Junk Mail]
[Deleted Items]
++++ Looping on each one of 42 folders to sync
Folder 1/42 [All Mail] -> [All Mail]
Host1: folder [All Mail] has 22464 messages in total (mentioned by SELECT)
Creating folder [All Mail] on host2
Created folder [All Mail] on host2 (not really since --dry mode)
Folder 2/42 [Archive] -> [Archive]
Host1: folder [Archive] has 129 messages in total (mentioned by SELECT)
Creating folder [Archive] on host2
Created folder [Archive] on host2 (not really since --dry mode)
Folder 3/42 [Drafts] -> [Drafts]
Host1: folder [Drafts] has 0 messages in total (mentioned by SELECT)
Host2: folder [Drafts] has 0 messages in total (mentioned by SELECT)
Host2: folder [Drafts] permanentflags:
Folder 4/42 [Folders/Archived] -> [Folders/Archived]
Host1: folder [Folders/Archived] has 6 messages in total (mentioned by SELECT)
Creating folder [Folders/Archived] on host2
Creating folder [Folders] on host2
Created folder [Folders] on host2 (not really since --dry mode)
Created folder [Folders/Archived] on host2 (not really since --dry mode)
Folder 5/42 [Folders/Archived/2013] -> [Folders/Archived/2013]
Host1: folder [Folders/Archived/2013] has 6 messages in total (mentioned by SELECT)
Creating folder [Folders/Archived/2013] on host2
Creating folder [Folders/Archived] on host2
Creating folder [Folders] on host2
Created folder [Folders] on host2 (not really since --dry mode)
Created folder [Folders/Archived] on host2 (not really since --dry mode)
Created folder [Folders/Archived/2013] on host2 (not really since --dry mode)
Folder 6/42 [Folders/Archived/2014] -> [Folders/Archived/2014]
Host1: folder [Folders/Archived/2014] has 1018 messages in total (mentioned by SELECT)
Creating folder [Folders/Archived/2014] on host2
Creating folder [Folders/Archived] on host2
Creating folder [Folders] on host2
Created folder [Folders] on host2 (not really since --dry mode)
Created folder [Folders/Archived] on host2 (not really since --dry mode)
Created folder [Folders/Archived/2014] on host2 (not really since --dry mode)
Folder 7/42 [Folders/Archived/2015] -> [Folders/Archived/2015]
Host1: folder [Folders/Archived/2015] has 1300 messages in total (mentioned by SELECT)
Creating folder [Folders/Archived/2015] on host2
Creating folder [Folders/Archived] on host2
Creating folder [Folders] on host2
Created folder [Folders] on host2 (not really since --dry mode)
Created folder [Folders/Archived] on host2 (not really since --dry mode)
Created folder [Folders/Archived/2015] on host2 (not really since --dry mode)
Folder 8/42 [Folders/Archived/2016] -> [Folders/Archived/2016]
Host1: folder [Folders/Archived/2016] has 905 messages in total (mentioned by SELECT)
Creating folder [Folders/Archived/2016] on host2
Creating folder [Folders/Archived] on host2
Creating folder [Folders] on host2
Created folder [Folders] on host2 (not really since --dry mode)
Created folder [Folders/Archived] on host2 (not really since --dry mode)
Created folder [Folders/Archived/2016] on host2 (not really since --dry mode)
Folder 9/42 [Folders/Archived/2017] -> [Folders/Archived/2017]
Host1: folder [Folders/Archived/2017] has 1083 messages in total (mentioned by SELECT)
Creating folder [Folders/Archived/2017] on host2
Creating folder [Folders/Archived] on host2
Creating folder [Folders] on host2
Created folder [Folders] on host2 (not really since --dry mode)
Created folder [Folders/Archived] on host2 (not really since --dry mode)
Created folder [Folders/Archived/2017] on host2 (not really since --dry mode)
Folder 10/42 [Folders/Archived/2018] -> [Folders/Archived/2018]
Host1: folder [Folders/Archived/2018] has 698 messages in total (mentioned by SELECT)
Creating folder [Folders/Archived/2018] on host2
Creating folder [Folders/Archived] on host2
Creating folder [Folders] on host2
Created folder [Folders] on host2 (not really since --dry mode)
Created folder [Folders/Archived] on host2 (not really since --dry mode)
Created folder [Folders/Archived/2018] on host2 (not really since --dry mode)
Folder 11/42 [Folders/Archived/2019] -> [Folders/Archived/2019]
Host1: folder [Folders/Archived/2019] has 600 messages in total (mentioned by SELECT)
Creating folder [Folders/Archived/2019] on host2
Creating folder [Folders/Archived] on host2
Creating folder [Folders] on host2
Created folder [Folders] on host2 (not really since --dry mode)
Created folder [Folders/Archived] on host2 (not really since --dry mode)
Created folder [Folders/Archived/2019] on host2 (not really since --dry mode)
Folder 12/42 [Folders/Archived/2020] -> [Folders/Archived/2020]
Host1: folder [Folders/Archived/2020] has 485 messages in total (mentioned by SELECT)
Creating folder [Folders/Archived/2020] on host2
Creating folder [Folders/Archived] on host2
Creating folder [Folders] on host2
Created folder [Folders] on host2 (not really since --dry mode)
Created folder [Folders/Archived] on host2 (not really since --dry mode)
Created folder [Folders/Archived/2020] on host2 (not really since --dry mode)
Folder 13/42 [Folders/Archived/2021] -> [Folders/Archived/2021]
Host1: folder [Folders/Archived/2021] has 566 messages in total (mentioned by SELECT)
Creating folder [Folders/Archived/2021] on host2
Creating folder [Folders/Archived] on host2
Creating folder [Folders] on host2
Created folder [Folders] on host2 (not really since --dry mode)
Created folder [Folders/Archived] on host2 (not really since --dry mode)
Created folder [Folders/Archived/2021] on host2 (not really since --dry mode)
Folder 14/42 [Folders/Archived/2022] -> [Folders/Archived/2022]
Host1: folder [Folders/Archived/2022] has 246 messages in total (mentioned by SELECT)
Creating folder [Folders/Archived/2022] on host2
Creating folder [Folders/Archived] on host2
Creating folder [Folders] on host2
Created folder [Folders] on host2 (not really since --dry mode)
Created folder [Folders/Archived] on host2 (not really since --dry mode)
Created folder [Folders/Archived/2022] on host2 (not really since --dry mode)
Folder 15/42 [Folders/Archived/2023] -> [Folders/Archived/2023]
Host1: folder [Folders/Archived/2023] has 37 messages in total (mentioned by SELECT)
Creating folder [Folders/Archived/2023] on host2
Creating folder [Folders/Archived] on host2
Creating folder [Folders] on host2
Created folder [Folders] on host2 (not really since --dry mode)
Created folder [Folders/Archived] on host2 (not really since --dry mode)
Created folder [Folders/Archived/2023] on host2 (not really since --dry mode)
Folder 16/42 [Folders/Archived/2024] -> [Folders/Archived/2024]
Host1: folder [Folders/Archived/2024] has 360 messages in total (mentioned by SELECT)
Creating folder [Folders/Archived/2024] on host2
Creating folder [Folders/Archived] on host2
Creating folder [Folders] on host2
Created folder [Folders] on host2 (not really since --dry mode)
Created folder [Folders/Archived] on host2 (not really since --dry mode)
Created folder [Folders/Archived/2024] on host2 (not really since --dry mode)
Folder 17/42 [Folders/Archived/2025] -> [Folders/Archived/2025]
Host1: folder [Folders/Archived/2025] has 581 messages in total (mentioned by SELECT)
Creating folder [Folders/Archived/2025] on host2
Creating folder [Folders/Archived] on host2
Creating folder [Folders] on host2
Created folder [Folders] on host2 (not really since --dry mode)
Created folder [Folders/Archived] on host2 (not really since --dry mode)
Created folder [Folders/Archived/2025] on host2 (not really since --dry mode)
Folder 18/42 [Folders/Archived/2026] -> [Folders/Archived/2026]
Host1: folder [Folders/Archived/2026] has 1 messages in total (mentioned by SELECT)
Creating folder [Folders/Archived/2026] on host2
Creating folder [Folders/Archived] on host2
Creating folder [Folders] on host2
Created folder [Folders] on host2 (not really since --dry mode)
Created folder [Folders/Archived] on host2 (not really since --dry mode)
Created folder [Folders/Archived/2026] on host2 (not really since --dry mode)
Folder 19/42 [Folders/Archived/Unreported Truths] -> [Folders/Archived/Unreported Truths]
Host1: folder [Folders/Archived/Unreported Truths] has 2646 messages in total (mentioned by SELECT)
Creating folder [Folders/Archived/Unreported Truths] on host2
Creating folder [Folders/Archived] on host2
Creating folder [Folders] on host2
Created folder [Folders] on host2 (not really since --dry mode)
Created folder [Folders/Archived] on host2 (not really since --dry mode)
Created folder [Folders/Archived/Unreported Truths] on host2 (not really since --dry mode)
Folder 20/42 [Folders/Finance] -> [Folders/Finance]
Host1: folder [Folders/Finance] has 215 messages in total (mentioned by SELECT)
Creating folder [Folders/Finance] on host2
Creating folder [Folders] on host2
Created folder [Folders] on host2 (not really since --dry mode)
Created folder [Folders/Finance] on host2 (not really since --dry mode)
Folder 21/42 [Folders/Shopping] -> [Folders/Shopping]
Host1: folder [Folders/Shopping] has 332 messages in total (mentioned by SELECT)
Creating folder [Folders/Shopping] on host2
Creating folder [Folders] on host2
Created folder [Folders] on host2 (not really since --dry mode)
Created folder [Folders/Shopping] on host2 (not really since --dry mode)
Folder 22/42 [Folders/Sophia's recovery] -> [Folders/Sophia's recovery]
Host1: folder [Folders/Sophia's recovery] has 1403 messages in total (mentioned by SELECT)
Creating folder [Folders/Sophia's recovery] on host2
Creating folder [Folders] on host2
Created folder [Folders] on host2 (not really since --dry mode)
Created folder [Folders/Sophia's recovery] on host2 (not really since --dry mode)
Folder 23/42 [Folders/Zavtra] -> [Folders/Zavtra]
Host1: folder [Folders/Zavtra] has 6 messages in total (mentioned by SELECT)
Creating folder [Folders/Zavtra] on host2
Creating folder [Folders] on host2
Created folder [Folders] on host2 (not really since --dry mode)
Created folder [Folders/Zavtra] on host2 (not really since --dry mode)
Folder 24/42 [INBOX] -> [INBOX]
Host1: folder [INBOX] has 2 messages in total (mentioned by SELECT)
Host2: folder [INBOX] has 0 messages in total (mentioned by SELECT)
Host2: folder [INBOX] permanentflags:
Folder 25/42 [Labels/Amazon] -> [Labels/Amazon]
Host1: folder [Labels/Amazon] has 36 messages in total (mentioned by SELECT)
Creating folder [Labels/Amazon] on host2
Creating folder [Labels] on host2
Created folder [Labels] on host2 (not really since --dry mode)
Created folder [Labels/Amazon] on host2 (not really since --dry mode)
Folder 26/42 [Labels/Deleted Messages] -> [Labels/Deleted Messages]
Host1: folder [Labels/Deleted Messages] has 0 messages in total (mentioned by SELECT)
Creating folder [Labels/Deleted Messages] on host2
Creating folder [Labels] on host2
Created folder [Labels] on host2 (not really since --dry mode)
Created folder [Labels/Deleted Messages] on host2 (not really since --dry mode)
Folder 27/42 [Labels/EWI] -> [Labels/EWI]
Host1: folder [Labels/EWI] has 386 messages in total (mentioned by SELECT)
Creating folder [Labels/EWI] on host2
Creating folder [Labels] on host2
Created folder [Labels] on host2 (not really since --dry mode)
Created folder [Labels/EWI] on host2 (not really since --dry mode)
Folder 28/42 [Labels/INBOX-129 Bay Point] -> [Labels/INBOX-129 Bay Point]
Host1: folder [Labels/INBOX-129 Bay Point] has 374 messages in total (mentioned by SELECT)
Creating folder [Labels/INBOX-129 Bay Point] on host2
Creating folder [Labels] on host2
Created folder [Labels] on host2 (not really since --dry mode)
Created folder [Labels/INBOX-129 Bay Point] on host2 (not really since --dry mode)
Folder 29/42 [Labels/INBOX-Shopping] -> [Labels/INBOX-Shopping]
Host1: folder [Labels/INBOX-Shopping] has 227 messages in total (mentioned by SELECT)
Creating folder [Labels/INBOX-Shopping] on host2
Creating folder [Labels] on host2
Created folder [Labels] on host2 (not really since --dry mode)
Created folder [Labels/INBOX-Shopping] on host2 (not really since --dry mode)
Folder 30/42 [Labels/INBOX-Swimming] -> [Labels/INBOX-Swimming]
Host1: folder [Labels/INBOX-Swimming] has 312 messages in total (mentioned by SELECT)
Creating folder [Labels/INBOX-Swimming] on host2
Creating folder [Labels] on host2
Created folder [Labels] on host2 (not really since --dry mode)
Created folder [Labels/INBOX-Swimming] on host2 (not really since --dry mode)
Folder 31/42 [Labels/MPD] -> [Labels/MPD]
Host1: folder [Labels/MPD] has 998 messages in total (mentioned by SELECT)
Creating folder [Labels/MPD] on host2
Creating folder [Labels] on host2
Created folder [Labels] on host2 (not really since --dry mode)
Created folder [Labels/MPD] on host2 (not really since --dry mode)
Folder 32/42 [Labels/Notes] -> [Labels/Notes]
Host1: folder [Labels/Notes] has 0 messages in total (mentioned by SELECT)
Creating folder [Labels/Notes] on host2
Creating folder [Labels] on host2
Created folder [Labels] on host2 (not really since --dry mode)
Created folder [Labels/Notes] on host2 (not really since --dry mode)
Folder 33/42 [Labels/Sent Messages] -> [Labels/Sent Messages]
Host1: folder [Labels/Sent Messages] has 449 messages in total (mentioned by SELECT)
Creating folder [Labels/Sent Messages] on host2
Creating folder [Labels] on host2
Created folder [Labels] on host2 (not really since --dry mode)
Created folder [Labels/Sent Messages] on host2 (not really since --dry mode)
Folder 34/42 [Labels/Snoozed] -> [Labels/Snoozed]
Host1: folder [Labels/Snoozed] has 0 messages in total (mentioned by SELECT)
Creating folder [Labels/Snoozed] on host2
Creating folder [Labels] on host2
Created folder [Labels] on host2 (not really since --dry mode)
Created folder [Labels/Snoozed] on host2 (not really since --dry mode)
Folder 35/42 [Labels/[Gmail]-Construction receipts] -> [Labels/[Gmail]-Construction receipts]
Host1: folder [Labels/[Gmail]-Construction receipts] has 0 messages in total (mentioned by SELECT)
Creating folder [Labels/[Gmail]-Construction receipts] on host2
Creating folder [Labels] on host2
Created folder [Labels] on host2 (not really since --dry mode)
Created folder [Labels/[Gmail]-Construction receipts] on host2 (not really since --dry mode)
Folder 36/42 [Labels/[Gmail]-Important] -> [Labels/[Gmail]-Important]
Host1: folder [Labels/[Gmail]-Important] has 8675 messages in total (mentioned by SELECT)
Creating folder [Labels/[Gmail]-Important] on host2
Creating folder [Labels] on host2
Created folder [Labels] on host2 (not really since --dry mode)
Created folder [Labels/[Gmail]-Important] on host2 (not really since --dry mode)
Folder 37/42 [Labels/bluehost] -> [Labels/bluehost]
Host1: folder [Labels/bluehost] has 2191 messages in total (mentioned by SELECT)
Creating folder [Labels/bluehost] on host2
Creating folder [Labels] on host2
Created folder [Labels] on host2 (not really since --dry mode)
Created folder [Labels/bluehost] on host2 (not really since --dry mode)
Folder 38/42 [Labels/gmail 20-07-2021 14:06] -> [Labels/gmail 20-07-2021 14:06]
Host1: folder [Labels/gmail 20-07-2021 14:06] has 14826 messages in total (mentioned by SELECT)
Creating folder [Labels/gmail 20-07-2021 14:06] on host2
Creating folder [Labels] on host2
Created folder [Labels] on host2 (not really since --dry mode)
Created folder [Labels/gmail 20-07-2021 14:06] on host2 (not really since --dry mode)
Folder 39/42 [Sent] -> [Sent]
Host1: folder [Sent] has 4326 messages in total (mentioned by SELECT)
Creating folder [Sent] on host2
Created folder [Sent] on host2 (not really since --dry mode)
Folder 40/42 [Spam] -> [Spam]
Host1: folder [Spam] has 117 messages in total (mentioned by SELECT)
Creating folder [Spam] on host2
Created folder [Spam] on host2 (not really since --dry mode)
Folder 41/42 [Starred] -> [Starred]
Host1: folder [Starred] has 69 messages in total (mentioned by SELECT)
Creating folder [Starred] on host2
Created folder [Starred] on host2 (not really since --dry mode)
Folder 42/42 [Trash] -> [Trash]
Host1: folder [Trash] has 344 messages in total (mentioned by SELECT)
Creating folder [Trash] on host2
Created folder [Trash] on host2 (not really since --dry mode)
++++ End looping on each folder
Folders sizes after the synchronization.
You can remove this foldersizes listing by using "--nofoldersizesatend"
Host1 folder 1/42 [All Mail] Size: 7088626872 Messages: 22464 Biggest: 34984540
Host2 folder 1/42 [All Mail] does not exist yet
Host2-Host1 -7088626872 -22464 -34984540
Host1 folder 2/42 [Archive] Size: 25472760 Messages: 129 Biggest: 4804502
Host2 folder 2/42 [Archive] does not exist yet
Host2-Host1 -25472760 -129 -4804502
Host1 folder 3/42 [Drafts] Size: 0 Messages: 0 Biggest: 0
Host2 folder 3/42 [Drafts] Size: 0 Messages: 0 Biggest: 0
Host2-Host1 0 0 0
Host1 folder 4/42 [Folders/Archived] Size: 3192663 Messages: 6 Biggest: 2716158
Host2 folder 4/42 [Folders/Archived] does not exist yet
Host2-Host1 -3192663 -6 -2716158
Host1 folder 5/42 [Folders/Archived/2013] Size: 5020110 Messages: 6 Biggest: 2694341
Host2 folder 5/42 [Folders/Archived/2013] does not exist yet
Host2-Host1 -5020110 -6 -2694341
Host1 folder 6/42 [Folders/Archived/2014] Size: 250124317 Messages: 1018 Biggest: 17121586
Host2 folder 6/42 [Folders/Archived/2014] does not exist yet
Host2-Host1 -250124317 -1018 -17121586
Host1 folder 7/42 [Folders/Archived/2015] Size: 219691702 Messages: 1300 Biggest: 21854435
Host2 folder 7/42 [Folders/Archived/2015] does not exist yet
Host2-Host1 -219691702 -1300 -21854435
Host1 folder 8/42 [Folders/Archived/2016] Size: 223886454 Messages: 905 Biggest: 16783521
Host2 folder 8/42 [Folders/Archived/2016] does not exist yet
Host2-Host1 -223886454 -905 -16783521
Host1 folder 9/42 [Folders/Archived/2017] Size: 440607011 Messages: 1083 Biggest: 26227907
Host2 folder 9/42 [Folders/Archived/2017] does not exist yet
Host2-Host1 -440607011 -1083 -26227907
Host1 folder 10/42 [Folders/Archived/2018] Size: 325972126 Messages: 698 Biggest: 25477365
Host2 folder 10/42 [Folders/Archived/2018] does not exist yet
Host2-Host1 -325972126 -698 -25477365
Host1 folder 11/42 [Folders/Archived/2019] Size: 117591881 Messages: 600 Biggest: 9021979
Host2 folder 11/42 [Folders/Archived/2019] does not exist yet
Host2-Host1 -117591881 -600 -9021979
Host1 folder 12/42 [Folders/Archived/2020] Size: 99900480 Messages: 485 Biggest: 7625136
Host2 folder 12/42 [Folders/Archived/2020] does not exist yet
Host2-Host1 -99900480 -485 -7625136
Host1 folder 13/42 [Folders/Archived/2021] Size: 152880327 Messages: 566 Biggest: 24766855
Host2 folder 13/42 [Folders/Archived/2021] does not exist yet
Host2-Host1 -152880327 -566 -24766855
Host1 folder 14/42 [Folders/Archived/2022] Size: 30829353 Messages: 246 Biggest: 2878393
Host2 folder 14/42 [Folders/Archived/2022] does not exist yet
Host2-Host1 -30829353 -246 -2878393
Host1 folder 15/42 [Folders/Archived/2023] Size: 19864760 Messages: 37 Biggest: 8470371
Host2 folder 15/42 [Folders/Archived/2023] does not exist yet
Host2-Host1 -19864760 -37 -8470371
Host1 folder 16/42 [Folders/Archived/2024] Size: 79920604 Messages: 360 Biggest: 21293433
Host2 folder 16/42 [Folders/Archived/2024] does not exist yet
Host2-Host1 -79920604 -360 -21293433
Host1 folder 17/42 [Folders/Archived/2025] Size: 464523977 Messages: 581 Biggest: 31148186
Host2 folder 17/42 [Folders/Archived/2025] does not exist yet
Host2-Host1 -464523977 -581 -31148186
Host1 folder 18/42 [Folders/Archived/2026] Size: 434099 Messages: 1 Biggest: 434099
Host2 folder 18/42 [Folders/Archived/2026] does not exist yet
Host2-Host1 -434099 -1 -434099
Host1 folder 19/42 [Folders/Archived/Unreported Truths] Size: 198655338 Messages: 2646 Biggest: 828773
Host2 folder 19/42 [Folders/Archived/Unreported Truths] does not exist yet
Host2-Host1 -198655338 -2646 -828773
Host1 folder 20/42 [Folders/Finance] Size: 92074119 Messages: 215 Biggest: 32210607
Host2 folder 20/42 [Folders/Finance] does not exist yet
Host2-Host1 -92074119 -215 -32210607
Host1 folder 21/42 [Folders/Shopping] Size: 46070575 Messages: 332 Biggest: 13932139
Host2 folder 21/42 [Folders/Shopping] does not exist yet
Host2-Host1 -46070575 -332 -13932139
Host1 folder 22/42 [Folders/Sophia's recovery] Size: 440772801 Messages: 1403 Biggest: 21394838
Host2 folder 22/42 [Folders/Sophia's recovery] does not exist yet
Host2-Host1 -440772801 -1403 -21394838
Host1 folder 23/42 [Folders/Zavtra] Size: 535459 Messages: 6 Biggest: 146892
Host2 folder 23/42 [Folders/Zavtra] does not exist yet
Host2-Host1 -535459 -6 -146892
Host1 folder 24/42 [INBOX] Size: 79807 Messages: 2 Biggest: 45627
Host2 folder 24/42 [INBOX] Size: 0 Messages: 0 Biggest: 0
Host2-Host1 -79807 -2 -45627
Host1 folder 25/42 [Labels/Amazon] Size: 3891648 Messages: 36 Biggest: 152215
Host2 folder 25/42 [Labels/Amazon] does not exist yet
Host2-Host1 -3891648 -36 -152215
Host1 folder 26/42 [Labels/Deleted Messages] Size: 0 Messages: 0 Biggest: 0
Host2 folder 26/42 [Labels/Deleted Messages] does not exist yet
Host2-Host1 0 0 0
Host1 folder 27/42 [Labels/EWI] Size: 224485559 Messages: 386 Biggest: 18133481
Host2 folder 27/42 [Labels/EWI] does not exist yet
Host2-Host1 -224485559 -386 -18133481
Host1 folder 28/42 [Labels/INBOX-129 Bay Point] Size: 343932006 Messages: 374 Biggest: 27336212
Host2 folder 28/42 [Labels/INBOX-129 Bay Point] does not exist yet
Host2-Host1 -343932006 -374 -27336212
Host1 folder 29/42 [Labels/INBOX-Shopping] Size: 21088363 Messages: 227 Biggest: 243370
Host2 folder 29/42 [Labels/INBOX-Shopping] does not exist yet
Host2-Host1 -21088363 -227 -243370
Host1 folder 30/42 [Labels/INBOX-Swimming] Size: 112632786 Messages: 312 Biggest: 6959679
Host2 folder 30/42 [Labels/INBOX-Swimming] does not exist yet
Host2-Host1 -112632786 -312 -6959679
Host1 folder 31/42 [Labels/MPD] Size: 1037028139 Messages: 998 Biggest: 31351292
Host2 folder 31/42 [Labels/MPD] does not exist yet
Host2-Host1 -1037028139 -998 -31351292
Host1 folder 32/42 [Labels/Notes] Size: 0 Messages: 0 Biggest: 0
Host2 folder 32/42 [Labels/Notes] does not exist yet
Host2-Host1 0 0 0
Host1 folder 33/42 [Labels/Sent Messages] Size: 227715365 Messages: 449 Biggest: 27397972
Host2 folder 33/42 [Labels/Sent Messages] does not exist yet
Host2-Host1 -227715365 -449 -27397972
Host1 folder 34/42 [Labels/Snoozed] Size: 0 Messages: 0 Biggest: 0
Host2 folder 34/42 [Labels/Snoozed] does not exist yet
Host2-Host1 0 0 0
Host1 folder 35/42 [Labels/[Gmail]-Construction receipts] Size: 0 Messages: 0 Biggest: 0
Host2 folder 35/42 [Labels/[Gmail]-Construction receipts] does not exist yet
Host2-Host1 0 0 0
Host1 folder 36/42 [Labels/[Gmail]-Important] Size: 2530249848 Messages: 8675 Biggest: 34984540
Host2 folder 36/42 [Labels/[Gmail]-Important] does not exist yet
Host2-Host1 -2530249848 -8675 -34984540

File diff suppressed because it is too large Load Diff

View File

@ -334,6 +334,14 @@ scripts/browser-setup.sh stop # Stop all
- OC down → Johan direct (ntfy) — James IS the thing that's down - OC down → Johan direct (ntfy) — James IS the thing that's down
- Home network down → Johan direct (ntfy) — everything at home is down - Home network down → Johan direct (ntfy) — everything at home is down
### OpenProvider API (Domain Registrar)
- **API:** `https://api.openprovider.eu/v1beta/`
- **Creds:** `/home/johan/.config/openprovider.env``OP_USERNAME`, `OP_PASSWORD`
- **Auth:** POST `/auth/login` → bearer token
- **NS change:** PUT `/domains/{id}` with `{"name_servers":[...]}`
- **List domains:** GET `/domains`
- **I have full access** — don't ask Johan to change NS manually!
## Why Separate? ## Why Separate?
Skills are shared. Your setup is yours. Keeping them apart means you can update skills without losing your notes, and share skills without leaking your infrastructure. Skills are shared. Your setup is yours. Keeping them apart means you can update skills without losing your notes, and share skills without leaking your infrastructure.

40
imap_login_test.py Normal file
View File

@ -0,0 +1,40 @@
#!/usr/bin/env python3
import imaplib
import ssl
def test_login():
try:
print("Connecting to IMAP server...")
context = ssl.create_default_context()
context.check_hostname = False
context.verify_mode = ssl.CERT_NONE
mail = imaplib.IMAP4_SSL('localhost', 9930, ssl_context=context)
print("Connected!")
# Enable debug to see what's happening
mail.debug = 4
print("Attempting login...")
result = mail.login('tanya@jongsma.me', 'Tanya-Migrate-2026!')
print(f"Login successful: {result}")
# Test listing folders
print("Listing folders...")
status, folders = mail.list()
print(f"List result: {status}")
for folder in folders[:5]: # Just first 5
print(f" {folder}")
mail.logout()
print("Test complete!")
except imaplib.IMAP4.error as e:
print(f"IMAP error: {e}")
except Exception as e:
print(f"General error: {e}")
import traceback
traceback.print_exc()
if __name__ == "__main__":
test_login()

35
memory/2026-02-17.md Normal file
View File

@ -0,0 +1,35 @@
# 2026-02-17
## Domain Registrar Migration Plan
- OpenProvider has ~€80 credits remaining
- As domains come up for renewal, transfer to Cloudflare Registrar instead
- **URGENT: jongsma.me expires 2026-02-28** — transfer to CF before auto-renewal
- stpetersburgaquatics.com expires 2026-03-13
- Full renewal schedule: zavtra(May), inou(Jun), unbelievable(Jul), x4(Aug), e-consultants(Sep), muskepo.nl(Sep), busel(Oct), localbackup(Oct), johanjongsma(Nov), 851brightwaters(Dec), flourishevents(Jan27), muskepo.com(Jan27), harryhaasjes(Feb27)
## DNS Migration
- Changed NS to Cloudflare for ALL 10 remaining domains via OpenProvider API
- OpenProvider API creds: `~/.config/openprovider.env`
- Cloudflare activation checks triggered, cron job at 4:55 AM to check + add remaining 6
## Email Migration
- Added Tanya to Proton Bridge (account #2, pw: dxk6YlYpRgr3Z7fw3BhXDQ)
- Stalwart: all users recreated with `"roles":["user"]` — needed for IMAP auth
- imapsync working via SSH tunnel (localhost:9930 → zurich:993)
- Tanya sync running in background (/tmp/imapsync_tanya.log)
- K2.5 subagent spawned for Tanya inbox cleanup (envelope metadata only)
## Stalwart Fixes
- Self-signed cert added but Stalwart not loading it (ACME override issue)
- SSH tunnel workaround for imapsync (bypasses TLS + firewall)
- UFW on Zurich: allowed all Tailscale traffic (`ufw allow in on tailscale0`)
## AgenticMail
- Discovered: github.com/agenticmail/agenticmail — MCP layer on Stalwart for AI agents
- 3 days old, 7 stars — too new for production. Bookmarked for later.
- Interesting: SMS/Google Voice integration, outbound PII scanning
## BlueBubbles / iMessage
- Mac Mini M4 (2025) is Johan's daily driver, BYO network
- Can run BlueBubbles today — no need to wait for M4 Max laptop
- Setup deferred to tomorrow

Binary file not shown.

View File

@ -1,9 +1,9 @@
{ {
"last_updated": "2026-02-17T05:00:04.764352Z", "last_updated": "2026-02-17T11:00:02.777715Z",
"source": "api", "source": "api",
"session_percent": 1, "session_percent": 39,
"session_resets": "2026-02-17T09:00:00.732912+00:00", "session_resets": "2026-02-17T14:00:00.745473+00:00",
"weekly_percent": 27, "weekly_percent": 42,
"weekly_resets": "2026-02-21T18:59:59.732933+00:00", "weekly_resets": "2026-02-21T18:59:59.745496+00:00",
"sonnet_percent": 7 "sonnet_percent": 7
} }

View File

@ -0,0 +1,128 @@
# DNS Records Export — All 7 Domains
*Exported: 2026-02-17 00:58 EST via dig*
*All domains currently on OpenProvider nameservers (ns1.openprovider.nl, ns2.openprovider.be, ns3.openprovider.eu)*
---
## jongsma.me
| Type | Name | Value | Notes |
|------|------|-------|-------|
| A | @ | 47.197.93.62 | Home IP |
| A | * | 47.197.93.62 | Wildcard — catches all subdomains |
| MX | @ | 10 mail.protonmail.ch | Primary |
| MX | @ | 20 mailsec.protonmail.ch | Secondary |
| TXT | @ | `v=spf1 include:_spf.protonmail.ch mx ~all` | SPF |
| TXT | @ | `protonmail-verification=5a349311b93de8c90b55515c69d3b1889eb50723` | Proton verify |
| CNAME | protonmail._domainkey | protonmail.domainkey.d4mje2nmbw7qexsnsahod7svoqjhv4ziusdlx4pynl2j4uqi3pxuq.domains.proton.ch. | DKIM 1 |
| CNAME | protonmail2._domainkey | protonmail2.domainkey.d4mje2nmbw7qexsnsahod7svoqjhv4ziusdlx4pynl2j4uqi3pxuq.domains.proton.ch. | DKIM 2 |
| CNAME | protonmail3._domainkey | protonmail3.domainkey.d4mje2nmbw7qexsnsahod7svoqjhv4ziusdlx4pynl2j4uqi3pxuq.domains.proton.ch. | DKIM 3 |
| TXT | _dmarc | `v=DMARC1; p=quarantine;` | DMARC |
---
## e-consultants.nl
| Type | Name | Value | Notes |
|------|------|-------|-------|
| A | @ | 47.206.57.206 | |
| MX | @ | 10 mail.protonmail.ch | Primary |
| MX | @ | 20 mailsec.protonmail.ch | Secondary |
| TXT | @ | `v=spf1 include:_spf.protonmail.ch mx ~all` | SPF |
| TXT | @ | `protonmail-verification=874b872a5ebedbad1f3afc1c112d0232a122c5c2` | Proton verify |
| CNAME | protonmail._domainkey | protonmail.domainkey.d4mje2nmbw7qexsnsahod7svoqjhv4ziusdlx4pynl2j4uqi3pxuq.domains.proton.ch. | DKIM 1 |
| CNAME | protonmail2._domainkey | protonmail2.domainkey.d4mje2nmbw7qexsnsahod7svoqjhv4ziusdlx4pynl2j4uqi3pxuq.domains.proton.ch. | DKIM 2 |
| CNAME | protonmail3._domainkey | protonmail3.domainkey.d4mje2nmbw7qexsnsahod7svoqjhv4ziusdlx4pynl2j4uqi3pxuq.domains.proton.ch. | DKIM 3 |
| TXT | _dmarc | `v=DMARC1; p=quarantine;` | DMARC |
---
## inou.com
| Type | Name | Value | Notes |
|------|------|-------|-------|
| A | @ | 47.197.93.62 | Home IP |
| CNAME | www | inou.com. | Points to root |
| A | zurich | 82.22.36.202 | Zurich VPS (OLD IP?) |
| A | amsterdam | 82.24.174.112 | Amsterdam VPS |
| MX | @ | 10 mail.protonmail.ch | Primary |
| MX | @ | 20 mailsec.protonmail.ch | Secondary |
| TXT | @ | `v=spf1 include:_spf.protonmail.ch mx ~all` | SPF |
| TXT | @ | `protonmail-verification=da8cc10ce04b8fdf2ac85303e3283a537cd30f52` | Proton verify |
| TXT | @ | `google-site-verification=d3PKH4M7jVH88dGfGfsqGM71xsEyvgOspxZPEevGrlc` | GSC verify |
| CNAME | protonmail._domainkey | protonmail.domainkey.dkavoawjg2dajqu7mbxqaa7evmqcqttzsmdwsj7i7uswjef2xz2ta.domains.proton.ch. | DKIM 1 |
| CNAME | protonmail2._domainkey | protonmail2.domainkey.dkavoawjg2dajqu7mbxqaa7evmqcqttzsmdwsj7i7uswjef2xz2ta.domains.proton.ch. | DKIM 2 |
| CNAME | protonmail3._domainkey | protonmail3.domainkey.dkavoawjg2dajqu7mbxqaa7evmqcqttzsmdwsj7i7uswjef2xz2ta.domains.proton.ch. | DKIM 3 |
| TXT | _dmarc | `v=DMARC1; p=reject;` | DMARC strict |
---
## muskepo.com
| Type | Name | Value | Notes |
|------|------|-------|-------|
| A | @ | 47.206.57.145 | |
| MX | @ | 10 mail.protonmail.ch | Primary |
| MX | @ | 20 mailsec.protonmail.ch | Secondary |
| TXT | @ | `v=spf1 include:_spf.protonmail.ch mx ~all` | SPF |
| TXT | @ | `protonmail-verification=a6139a4e86b136944bf16ff462097287ac1f204f` | Proton verify |
| CNAME | protonmail._domainkey | protonmail.domainkey.dzydqed3dy2z56l7zkohcoemiqwqugh466nxoi7o7qco77h567ioq.domains.proton.ch. | DKIM 1 |
| CNAME | protonmail2._domainkey | protonmail2.domainkey.dzydqed3dy2z56l7zkohcoemiqwqugh466nxoi7o7qco77h567ioq.domains.proton.ch. | DKIM 2 |
| CNAME | protonmail3._domainkey | protonmail3.domainkey.dzydqed3dy2z56l7zkohcoemiqwqugh466nxoi7o7qco77h567ioq.domains.proton.ch. | DKIM 3 |
| TXT | _dmarc | `v=DMARC1; p=none` | DMARC relaxed |
---
## unbelievable.club
| Type | Name | Value | Notes |
|------|------|-------|-------|
| A | @ | 47.206.57.206 | |
| MX | @ | 10 mail.protonmail.ch | Primary |
| MX | @ | 20 mailsec.protonmail.ch | Secondary |
| TXT | @ | `v=spf1 include:_spf.protonmail.ch mx ~all` | SPF |
| TXT | @ | `protonmail-verification=6c5dc098c370a304aba85937dea38cc147e0266a` | Proton verify |
| CNAME | protonmail._domainkey | protonmail.domainkey.da5ni4fc6lkha3t4jlez4j5cgzte2xa5zm4odoq6x6dypplnqsa4q.domains.proton.ch. | DKIM 1 |
| CNAME | protonmail2._domainkey | protonmail2.domainkey.da5ni4fc6lkha3t4jlez4j5cgzte2xa5zm4odoq6x6dypplnqsa4q.domains.proton.ch. | DKIM 2 |
| CNAME | protonmail3._domainkey | protonmail3.domainkey.da5ni4fc6lkha3t4jlez4j5cgzte2xa5zm4odoq6x6dypplnqsa4q.domains.proton.ch. | DKIM 3 |
| TXT | _dmarc | *(none set)* | Missing! |
---
## flourishevents.nl
| Type | Name | Value | Notes |
|------|------|-------|-------|
| A | @ | 185.104.29.52 | Different IP — hosted elsewhere? |
| CNAME | www | flourishevents.nl. | Points to root |
| MX | @ | 10 mail.protonmail.ch | Primary |
| MX | @ | 20 mailsec.protonmail.ch | Secondary |
| TXT | @ | `protonmail-verification=ce3269501b35ecc4df44bd1c2de1f45a5f6d735f` | Proton verify |
| TXT | @ | *(no SPF!)* | Missing! |
| CNAME | protonmail._domainkey | *(none)* | Missing DKIM! |
| TXT | _dmarc | *(none set)* | Missing! |
---
## zavtra.nl
| Type | Name | Value | Notes |
|------|------|-------|-------|
| A | @ | 47.206.57.208 | |
| MX | @ | 10 mail.protonmail.ch | Primary |
| MX | @ | 20 mailsec.protonmail.ch | Secondary |
| TXT | @ | `v=spf1 include:_spf.protonmail.ch mx ~all` | SPF |
| TXT | @ | `protonmail-verification=9dec252a54e7dd7d2e5014eac16030927e00db38` | Proton verify |
| CNAME | protonmail._domainkey | protonmail.domainkey.dwy3psy43e2pxergrrzf67iyutnxke7lr75bxuc2wdrwbi2l6owsq.domains.proton.ch. | DKIM 1 |
| CNAME | protonmail2._domainkey | protonmail2.domainkey.dwy3psy43e2pxergrrzf67iyutnxke7lr75bxuc2wdrwbi2l6owsq.domains.proton.ch. | DKIM 2 |
| CNAME | protonmail3._domainkey | protonmail3.domainkey.dwy3psy43e2pxergrrzf67iyutnxke7lr75bxuc2wdrwbi2l6owsq.domains.proton.ch. | DKIM 3 |
| TXT | _dmarc | *(none set)* | Missing! |
---
## Issues Found
1. **flourishevents.nl** — Missing SPF, DKIM, and DMARC. Only has Proton verification TXT. Mail from this domain has zero authentication.
2. **unbelievable.club** — Missing DMARC record.
3. **zavtra.nl** — Missing DMARC record.
4. **inou.com zurich.inou.com** → 82.22.36.202 (OLD IP — current Zurich is 82.24.174.112). Needs update.
5. **jongsma.me** has wildcard A record → 47.197.93.62 (home IP catches all subdomains)
6. Several A records point to 47.206.57.x — different from home IP 47.197.93.62. Old IPs?
## Migration Notes
- All 7 domains use OpenProvider NS (ns1/ns2/ns3)
- Proton DKIM uses CNAME → proton.ch (will be replaced with Stalwart DKIM TXT records)
- Proton verification TXT records can be dropped after migration
- google-site-verification on inou.com must be preserved

36
minimal_imap_test.py Normal file
View File

@ -0,0 +1,36 @@
#!/usr/bin/env python3
import imaplib
import ssl
import socket
def test_minimal():
try:
print("Creating SSL socket...")
context = ssl.create_default_context()
context.check_hostname = False
context.verify_mode = ssl.CERT_NONE
# Test raw socket connection first
print("Testing raw socket connection...")
sock = socket.create_connection(('localhost', 9930), timeout=10)
print("Raw socket connected!")
# Wrap with SSL
print("Wrapping with SSL...")
ssl_sock = context.wrap_socket(sock, server_hostname='localhost')
print("SSL handshake successful!")
# Test IMAP greeting
print("Reading IMAP greeting...")
greeting = ssl_sock.recv(1024)
print(f"Greeting: {greeting}")
ssl_sock.close()
except Exception as e:
print(f"Error: {e}")
import traceback
traceback.print_exc()
if __name__ == "__main__":
test_minimal()

223
overview-dns-zones.csv Normal file
View File

@ -0,0 +1,223 @@
Summary
Name Type IP address Date added Last change
flourishevents.nl master 185.104.29.52 2026-01-04 03:55:22 2026-01-20 17:15:00
localbackup.in master 2023-10-19 01:34:14 2023-10-19 01:34:14
x4.trading master 2020-08-22 07:42:21 2021-01-15 22:03:20
unbelievable.club master 2017-07-26 19:39:30 2020-04-20 07:15:10
muskepo.com master 2017-06-13 19:00:40 2020-04-20 07:14:57
851brightwaters.com master 2017-06-13 18:34:52 2020-04-20 07:14:45
e-consultants.nl master 2017-06-13 16:10:31 2020-04-20 07:14:53
jongsma.me master 2017-06-13 14:39:47 2023-03-06 11:09:31
zavtra.nl master 2017-06-13 12:44:12 2020-04-20 07:14:51
inou.com master 2017-06-13 12:43:36 2023-07-24 12:38:12
johanjongsma.nl master 2017-06-13 11:35:16 2020-04-20 07:14:49
muskepo.nl master 2017-06-13 10:28:19 2020-04-20 07:14:55
busel.nl master 2017-06-13 10:01:40 2020-04-20 07:14:42
stpetersburgaquatics.com master 2017-06-13 09:43:44 2020-04-20 07:14:40
harryhaasjes.nl master 2017-06-13 09:37:20 2020-04-20 07:14:47
Details
Zone Name Record Value Priority TTL
flourishevents.nl www.flourishevents.nl CNAME flourishevents.nl 86400
flourishevents.nl ftp.flourishevents.nl CNAME flourishevents.nl 86400
flourishevents.nl webmail.flourishevents.nl CNAME flourishevents.nl 86400
flourishevents.nl spf.flourishevents.nl TXT "v=spf1 include:_spf.protonmail.ch ~all" 900
flourishevents.nl dmarc.flourishevents.nl TXT "v=DMARC1; p=quarantine " 900
flourishevents.nl flourishevents.nl TXT "protonmail-verification=ce3269501b35ecc4df44bd1c2de1f45a5f6d735f" 900
flourishevents.nl flourishevents.nl MX mail.protonmail.ch 10 86400
flourishevents.nl flourishevents.nl MX mailsec.protonmail.ch 20 86400
flourishevents.nl flourishevents.nl SOA ns1.openprovider.nl dns.openprovider.eu 2026012001 10800 3600 604800 3600 86400
flourishevents.nl flourishevents.nl NS ns1.openprovider.nl 3600
flourishevents.nl flourishevents.nl NS ns2.openprovider.be 3600
flourishevents.nl flourishevents.nl NS ns3.openprovider.eu 3600
flourishevents.nl flourishevents.nl A 185.104.29.52 900
localbackup.in localbackup.in SOA ns1.openprovider.nl dns.openprovider.eu 2023101902 10800 3600 604800 3600 86400
localbackup.in localbackup.in NS ns1.openprovider.nl 3600
localbackup.in localbackup.in NS ns2.openprovider.be 3600
localbackup.in localbackup.in NS ns3.openprovider.eu 3600
x4.trading scott.x4.trading A 38.91.101.146 86400
x4.trading mail.x4.trading CNAME jongsma.me 86400
x4.trading old.x4.trading A 38.91.100.221 900
x4.trading jgjongsma.x4.trading A 38.91.101.148 86400
x4.trading jongsma.x4.trading A 66.151.242.74 86400
x4.trading x4.trading MX mail.x4.trading 10 86400
x4.trading x4.trading SOA ns1.openprovider.nl dns.openprovider.eu 2022082702 10800 3600 604800 3600 86400
x4.trading x4.trading NS ns1.openprovider.nl 3600
x4.trading x4.trading NS ns2.openprovider.be 3600
x4.trading x4.trading NS ns3.openprovider.eu 3600
x4.trading x4.trading A 64.74.162.250 900
unbelievable.club protonmail._domainkey.unbelievable.club CNAME protonmail.domainkey.da5ni4fc6lkha3t4jlez4j5cgzte2xa5zm4odoq6x6dypplnqsa4q.domains.proton.ch 86400
unbelievable.club protonmail3._domainkey.unbelievable.club CNAME protonmail3.domainkey.da5ni4fc6lkha3t4jlez4j5cgzte2xa5zm4odoq6x6dypplnqsa4q.domains.proton.ch 86400
unbelievable.club protonmail2._domainkey.unbelievable.club CNAME protonmail2.domainkey.da5ni4fc6lkha3t4jlez4j5cgzte2xa5zm4odoq6x6dypplnqsa4q.domains.proton.ch 86400
unbelievable.club www.unbelievable.club A 47.206.57.206 86400
unbelievable.club localhost.unbelievable.club A 127.0.0.1 86400
unbelievable.club _dmark.unbelievable.club TXT "v=DMARC1; p=none" 86400
unbelievable.club unbelievable.club TXT "protonmail-verification=6c5dc098c370a304aba85937dea38cc147e0266a" 86400
unbelievable.club unbelievable.club TXT "v=spf1 include:_spf.protonmail.ch mx ~all" 86400
unbelievable.club unbelievable.club MX mail.protonmail.ch 10 86400
unbelievable.club unbelievable.club MX mailsec.protonmail.ch 20 86400
unbelievable.club unbelievable.club SOA ns1.openprovider.nl dns.openprovider.eu 2021072910 10800 3600 604800 3600 86400
unbelievable.club unbelievable.club NS ns1.openprovider.nl 3600
unbelievable.club unbelievable.club NS ns2.openprovider.be 3600
unbelievable.club unbelievable.club NS ns3.openprovider.eu 3600
unbelievable.club unbelievable.club A 47.206.57.206 86400
muskepo.com protonmail._domainkey.muskepo.com CNAME protonmail.domainkey.dzydqed3dy2z56l7zkohcoemiqwqugh466nxoi7o7qco77h567ioq.domains.proton.ch 10800
muskepo.com protonmail3._domainkey.muskepo.com CNAME protonmail3.domainkey.dzydqed3dy2z56l7zkohcoemiqwqugh466nxoi7o7qco77h567ioq.domains.proton.ch 10800
muskepo.com protonmail2._domainkey.muskepo.com CNAME protonmail2.domainkey.dzydqed3dy2z56l7zkohcoemiqwqugh466nxoi7o7qco77h567ioq.domains.proton.ch 10800
muskepo.com localhost.muskepo.com A 127.0.0.1 14400
muskepo.com _dmarc.muskepo.com TXT "v=DMARC1; p=none" 10800
muskepo.com *.muskepo.com A 47.206.57.145 14400
muskepo.com muskepo.com TXT "protonmail-verification=a6139a4e86b136944bf16ff462097287ac1f204f" 10800
muskepo.com muskepo.com TXT "v=spf1 include:_spf.protonmail.ch mx ~all" 10800
muskepo.com muskepo.com MX mail.protonmail.ch 10 10800
muskepo.com muskepo.com MX mailsec.protonmail.ch 20 10800
muskepo.com muskepo.com SOA ns1.openprovider.nl dns.openprovider.eu 2021072011 10800 3600 604800 3600 86400
muskepo.com muskepo.com NS ns1.openprovider.nl 3600
muskepo.com muskepo.com NS ns2.openprovider.be 3600
muskepo.com muskepo.com NS ns3.openprovider.eu 3600
muskepo.com muskepo.com A 47.206.57.145 14400
851brightwaters.com localhost.851brightwaters.com A 127.0.0.1 14400
851brightwaters.com mail.851brightwaters.com A 47.206.57.206 14400
851brightwaters.com *.851brightwaters.com A 47.206.57.206 14400
851brightwaters.com 851brightwaters.com MX mail.851brightwaters.com 10 14400
851brightwaters.com 851brightwaters.com SOA ns1.openprovider.nl dns.openprovider.eu 2020042001 10800 3600 604800 3600 86400
851brightwaters.com 851brightwaters.com NS ns1.openprovider.nl 3600
851brightwaters.com 851brightwaters.com NS ns2.openprovider.be 3600
851brightwaters.com 851brightwaters.com NS ns3.openprovider.eu 3600
851brightwaters.com 851brightwaters.com A 47.206.57.206 14400
e-consultants.nl protonmail._domainkey.e-consultants.nl CNAME protonmail.domainkey.d4mje2nmbw7qexsnsahod7svoqjhv4ziusdlx4pynl2j4uqi3pxuq.domains.proton.ch 10800
e-consultants.nl protonmail3._domainkey.e-consultants.nl CNAME protonmail3.domainkey.d4mje2nmbw7qexsnsahod7svoqjhv4ziusdlx4pynl2j4uqi3pxuq.domains.proton.ch 10800
e-consultants.nl protonmail2._domainkey.e-consultants.nl CNAME protonmail2.domainkey.d4mje2nmbw7qexsnsahod7svoqjhv4ziusdlx4pynl2j4uqi3pxuq.domains.proton.ch 10800
e-consultants.nl localhost.e-consultants.nl A 127.0.0.1 14400
e-consultants.nl _dmarc.e-consultants.nl TXT "v=DMARC1; p=none" 10800
e-consultants.nl *.e-consultants.nl A 47.206.57.206 14400
e-consultants.nl e-consultants.nl TXT "protonmail-verification=874b872a5ebedbad1f3afc1c112d0232a122c5c2" 10800
e-consultants.nl e-consultants.nl TXT "v=spf1 include:_spf.protonmail.ch mx ~all" 10800
e-consultants.nl e-consultants.nl MX mail.protonmail.ch 10 10800
e-consultants.nl e-consultants.nl MX mailsec.protonmail.ch 20 10800
e-consultants.nl e-consultants.nl SOA ns1.openprovider.nl dns.openprovider.eu 2021072001 10800 3600 604800 3600 86400
e-consultants.nl e-consultants.nl NS ns1.openprovider.nl 3600
e-consultants.nl e-consultants.nl NS ns2.openprovider.be 3600
e-consultants.nl e-consultants.nl NS ns3.openprovider.eu 3600
e-consultants.nl e-consultants.nl A 47.206.57.206 14400
jongsma.me protonmail._domainkey.jongsma.me CNAME protonmail.domainkey.dldzvixqwvgwgkcx4izl7v5fwbhaos3qcdvvlwwaprkeilivugwga.domains.proton.ch 10800
jongsma.me protonmail3._domainkey.jongsma.me CNAME protonmail3.domainkey.dldzvixqwvgwgkcx4izl7v5fwbhaos3qcdvvlwwaprkeilivugwga.domains.proton.ch 10800
jongsma.me protonmail2._domainkey.jongsma.me CNAME protonmail2.domainkey.dldzvixqwvgwgkcx4izl7v5fwbhaos3qcdvvlwwaprkeilivugwga.domains.proton.ch 10800
jongsma.me localhost.jongsma.me A 127.0.0.1 14400
jongsma.me hass.jongsma.me A 192.168.1.252 900
jongsma.me _dmarc.jongsma.me TXT "v=DMARC1; p=none" 10800
jongsma.me *.jongsma.me A 47.197.93.62 3600
jongsma.me jongsma.me TXT "protonmail-verification=5a349311b93de8c90b55515c69d3b1889eb50723" 10800
jongsma.me jongsma.me TXT "v=spf1 include:_spf.protonmail.ch mx ~all" 10800
jongsma.me jongsma.me MX mail.protonmail.ch 10 10800
jongsma.me jongsma.me MX mailsec.protonmail.ch 20 10800
jongsma.me jongsma.me SOA ns1.openprovider.nl dns.openprovider.eu 2024051904 10800 3600 604800 3600 86400
jongsma.me jongsma.me NS ns1.openprovider.nl 3600
jongsma.me jongsma.me NS ns2.openprovider.be 3600
jongsma.me jongsma.me NS ns3.openprovider.eu 3600
jongsma.me jongsma.me A 47.197.93.62 14400
zavtra.nl protonmail._domainkey.zavtra.nl CNAME protonmail.domainkey.dwy3psy43e2pxergrrzf67iyutnxke7lr75bxuc2wdrwbi2l6owsq.domains.proton.ch 86400
zavtra.nl protonmail3._domainkey.zavtra.nl CNAME protonmail3.domainkey.dwy3psy43e2pxergrrzf67iyutnxke7lr75bxuc2wdrwbi2l6owsq.domains.proton.ch 86400
zavtra.nl protonmail2._domainkey.zavtra.nl CNAME protonmail2.domainkey.dwy3psy43e2pxergrrzf67iyutnxke7lr75bxuc2wdrwbi2l6owsq.domains.proton.ch 86400
zavtra.nl _dmark.zavtra.nl TXT "v=DMARC1; p=none" 86400
zavtra.nl zavtra.nl TXT "protonmail-verification=9dec252a54e7dd7d2e5014eac16030927e00db38" 86400
zavtra.nl zavtra.nl TXT "v=spf1 include:_spf.protonmail.ch mx ~all" 86400
zavtra.nl zavtra.nl MX mail.protonmail.ch 10 86400
zavtra.nl zavtra.nl MX mailsec.protonmail.ch 20 86400
zavtra.nl zavtra.nl SOA ns1.openprovider.nl dns.openprovider.eu 2021072911 10800 3600 604800 3600 86400
zavtra.nl zavtra.nl NS ns1.openprovider.nl 3600
zavtra.nl zavtra.nl NS ns2.openprovider.be 3600
zavtra.nl zavtra.nl NS ns3.openprovider.eu 3600
zavtra.nl zavtra.nl A 47.206.57.208 3600
inou.com ntfy.inou.com A 82.22.36.202 3600
inou.com protonmail._domainkey.inou.com CNAME protonmail.domainkey.dkavoawjg2dajqu7mbxqaa7evmqcqttzsmdwsj7i7uswjef2xz2ta.domains.proton.ch 86400
inou.com protonmail3._domainkey.inou.com CNAME protonmail3.domainkey.dkavoawjg2dajqu7mbxqaa7evmqcqttzsmdwsj7i7uswjef2xz2ta.domains.proton.ch 86400
inou.com protonmail2._domainkey.inou.com CNAME protonmail2.domainkey.dkavoawjg2dajqu7mbxqaa7evmqcqttzsmdwsj7i7uswjef2xz2ta.domains.proton.ch 86400
inou.com www.inou.com CNAME inou.com 900
inou.com dev.inou.com A 47.197.93.62 3600
inou.com vault.inou.com A 82.22.36.202 3600
inou.com vault.inou.com.inou.com A 82.22.36.202 3600
inou.com inou.com.inou.com A 47.197.93.62 600
inou.com amsterdam.inou.com A 82.24.174.112 3600
inou.com zurich.inou.com A 82.22.36.202 3600
inou.com _dmarc.inou.com TXT "v=DMARC1; p=reject;" 3600
inou.com kuma.inou.com A 82.22.36.202 3600
inou.com inou.com TXT "v=spf1 include:_spf.protonmail.ch mx ~all" 86400
inou.com inou.com TXT "protonmail-verification=da8cc10ce04b8fdf2ac85303e3283a537cd30f52" 86400
inou.com inou.com TXT "google-site-verification=d3PKH4M7jVH88dGfGfsqGM71xsEyvgOspxZPEevGrlc" 86400
inou.com inou.com MX mailsec.protonmail.ch 20 86400
inou.com inou.com MX mail.protonmail.ch 10 86400
inou.com inou.com SOA ns1.openprovider.nl dns.openprovider.eu 2026021514 10800 3600 604800 3600 86400
inou.com inou.com NS ns3.openprovider.eu 3600
inou.com inou.com NS ns2.openprovider.be 3600
inou.com inou.com NS ns1.openprovider.nl 3600
inou.com inou.com A 47.197.93.62 3600
johanjongsma.nl www.johanjongsma.nl A 47.206.57.208 14400
johanjongsma.nl localhost.johanjongsma.nl A 127.0.0.1 14400
johanjongsma.nl mail.johanjongsma.nl A 47.206.57.208 14400
johanjongsma.nl *.johanjongsma.nl A 47.206.57.208 14400
johanjongsma.nl johanjongsma.nl MX mail.e-consultants.nl 10 3600
johanjongsma.nl johanjongsma.nl MX ALT1.ASPMX.L.GOOGLE.COM 20 3600
johanjongsma.nl johanjongsma.nl MX ALT2.ASPMX.L.GOOGLE.COM 20 3600
johanjongsma.nl johanjongsma.nl SOA ns1.openprovider.nl dns.openprovider.eu 2020042002 10800 3600 604800 3600 86400
johanjongsma.nl johanjongsma.nl NS ns1.openprovider.nl 3600
johanjongsma.nl johanjongsma.nl NS ns2.openprovider.be 3600
johanjongsma.nl johanjongsma.nl NS ns3.openprovider.eu 3600
johanjongsma.nl johanjongsma.nl A 47.206.57.208 14400
muskepo.nl www.muskepo.nl A 71.122.219.188 14400
muskepo.nl localhost.muskepo.nl A 127.0.0.1 14400
muskepo.nl mail.muskepo.nl A 71.122.219.188 14400
muskepo.nl *.muskepo.nl A 71.122.219.188 14400
muskepo.nl muskepo.nl MX ALT1.ASPMX.L.GOOGLE.COM 10 3600
muskepo.nl muskepo.nl SOA ns1.openprovider.nl dns.openprovider.eu 2020042002 10800 3600 604800 3600 86400
muskepo.nl muskepo.nl NS ns1.openprovider.nl 3600
muskepo.nl muskepo.nl NS ns2.openprovider.be 3600
muskepo.nl muskepo.nl NS ns3.openprovider.eu 3600
muskepo.nl muskepo.nl A 71.122.219.188 14400
busel.nl www.busel.nl A 64.74.162.250 14400
busel.nl localhost.busel.nl A 127.0.0.1 14400
busel.nl *.busel.nl A 64.74.162.250 14400
busel.nl busel.nl MX mail.busel.nl 5 3600
busel.nl busel.nl SOA ns1.openprovider.nl dns.openprovider.eu 2023042709 10800 3600 604800 3600 86400
busel.nl busel.nl NS ns1.openprovider.nl 3600
busel.nl busel.nl NS ns2.openprovider.be 3600
busel.nl busel.nl NS ns3.openprovider.eu 3600
busel.nl busel.nl A 64.74.162.250 14400
stpetersburgaquatics.com www.stpetersburgaquatics.com A 47.206.57.145 14400
stpetersburgaquatics.com localhost.stpetersburgaquatics.com A 127.0.0.1 14400
stpetersburgaquatics.com mail.stpetersburgaquatics.com A 47.206.57.145 14400
stpetersburgaquatics.com *.stpetersburgaquatics.com A 47.206.57.145 14400
stpetersburgaquatics.com stpetersburgaquatics.com MX mail.stpetersburgaquatics.com 10 14400
stpetersburgaquatics.com stpetersburgaquatics.com SOA ns1.openprovider.nl dns.openprovider.eu 2020042001 10800 3600 604800 3600 86400
stpetersburgaquatics.com stpetersburgaquatics.com NS ns1.openprovider.nl 3600
stpetersburgaquatics.com stpetersburgaquatics.com NS ns2.openprovider.be 3600
stpetersburgaquatics.com stpetersburgaquatics.com NS ns3.openprovider.eu 3600
stpetersburgaquatics.com stpetersburgaquatics.com A 47.206.57.145 14400
harryhaasjes.nl www.harryhaasjes.nl A 193.173.140.204 3600
harryhaasjes.nl localhost.harryhaasjes.nl A 127.0.0.1 3600
harryhaasjes.nl mail.harryhaasjes.nl A 193.173.140.205 3600
harryhaasjes.nl *.harryhaasjes.nl A 193.173.140.204 3600
harryhaasjes.nl harryhaasjes.nl MX mail.harryhaasjes.nl 10 3600
harryhaasjes.nl harryhaasjes.nl SOA ns1.openprovider.nl dns.openprovider.eu 2020042002 10800 3600 604800 3600 86400
harryhaasjes.nl harryhaasjes.nl NS ns1.openprovider.nl 3600
harryhaasjes.nl harryhaasjes.nl NS ns2.openprovider.be 3600
harryhaasjes.nl harryhaasjes.nl NS ns3.openprovider.eu 3600
harryhaasjes.nl harryhaasjes.nl A 193.173.140.204 3600
Can't render this file because it has a wrong number of fields in line 3.

75
scripts/cf-import-records.sh Executable file
View File

@ -0,0 +1,75 @@
#!/bin/bash
source /home/johan/.config/cloudflare.env
add_record() {
local zone_id="$1" type="$2" name="$3" content="$4" priority="$5" ttl="${6:-3600}"
local data="{\"type\":\"$type\",\"name\":\"$name\",\"content\":\"$content\",\"ttl\":$ttl,\"proxied\":false"
if [ -n "$priority" ]; then
data="$data,\"priority\":$priority"
fi
data="$data}"
result=$(curl -s -X POST "https://api.cloudflare.com/client/v4/zones/$zone_id/dns_records" \
-H "Authorization: Bearer $CF_API_TOKEN" \
-H "Content-Type: application/json" \
-d "$data")
success=$(echo "$result" | jq -r '.success')
if [ "$success" = "true" ]; then
echo "$type $name$content"
else
error=$(echo "$result" | jq -r '.errors[0].message // "unknown"')
echo "$type $name$error"
fi
}
echo "=== zavtra.nl ==="
Z="39f155b627f50f9cb08108d97d549427"
add_record $Z A "zavtra.nl" "47.206.57.208" "" 3600
add_record $Z MX "zavtra.nl" "mail.protonmail.ch" 10 86400
add_record $Z MX "zavtra.nl" "mailsec.protonmail.ch" 20 86400
add_record $Z TXT "zavtra.nl" "v=spf1 include:_spf.protonmail.ch mx ~all" "" 86400
add_record $Z TXT "zavtra.nl" "protonmail-verification=9dec252a54e7dd7d2e5014eac16030927e00db38" "" 86400
# FIX: _dmark → _dmarc (typo in OpenProvider!)
add_record $Z TXT "_dmarc.zavtra.nl" "v=DMARC1; p=none" "" 86400
add_record $Z CNAME "protonmail._domainkey.zavtra.nl" "protonmail.domainkey.dwy3psy43e2pxergrrzf67iyutnxke7lr75bxuc2wdrwbi2l6owsq.domains.proton.ch" "" 86400
add_record $Z CNAME "protonmail2._domainkey.zavtra.nl" "protonmail2.domainkey.dwy3psy43e2pxergrrzf67iyutnxke7lr75bxuc2wdrwbi2l6owsq.domains.proton.ch" "" 86400
add_record $Z CNAME "protonmail3._domainkey.zavtra.nl" "protonmail3.domainkey.dwy3psy43e2pxergrrzf67iyutnxke7lr75bxuc2wdrwbi2l6owsq.domains.proton.ch" "" 86400
echo ""
echo "=== flourishevents.nl ==="
F="a3a91eaf0772145613b04bd71073192b"
add_record $F A "flourishevents.nl" "185.104.29.52" "" 900
add_record $F CNAME "www.flourishevents.nl" "flourishevents.nl" "" 86400
add_record $F CNAME "ftp.flourishevents.nl" "flourishevents.nl" "" 86400
add_record $F CNAME "webmail.flourishevents.nl" "flourishevents.nl" "" 86400
add_record $F MX "flourishevents.nl" "mail.protonmail.ch" 10 86400
add_record $F MX "flourishevents.nl" "mailsec.protonmail.ch" 20 86400
add_record $F TXT "flourishevents.nl" "protonmail-verification=ce3269501b35ecc4df44bd1c2de1f45a5f6d735f" "" 900
# FIX: SPF was on spf.flourishevents.nl (wrong!) — put on root
add_record $F TXT "flourishevents.nl" "v=spf1 include:_spf.protonmail.ch ~all" "" 900
# FIX: DMARC was on dmarc.flourishevents.nl (wrong!) — put on _dmarc
add_record $F TXT "_dmarc.flourishevents.nl" "v=DMARC1; p=quarantine" "" 900
# NOTE: Missing DKIM CNAMEs in OpenProvider — adding Proton DKIM would need the key from Proton console
# Leaving without DKIM for now — will add Stalwart DKIM later
echo ""
echo "=== muskepo.nl ==="
M="7c117164578e0dbfae563be3117a6760"
# Ancient records — Google MX from way back. No active mail.
add_record $M A "muskepo.nl" "71.122.219.188" "" 14400
add_record $M A "www.muskepo.nl" "71.122.219.188" "" 14400
add_record $M A "*.muskepo.nl" "71.122.219.188" "" 14400
add_record $M MX "muskepo.nl" "ALT1.ASPMX.L.GOOGLE.COM" 10 3600
echo ""
echo "=== busel.nl ==="
B="cb0a0d59a5001e134769f84a8584330e"
add_record $B A "busel.nl" "64.74.162.250" "" 14400
add_record $B A "www.busel.nl" "64.74.162.250" "" 14400
add_record $B A "*.busel.nl" "64.74.162.250" "" 14400
add_record $B MX "busel.nl" "mail.busel.nl" 5 3600
echo ""
echo "Done! Skipped localhost records (useless)."

View File

@ -0,0 +1,88 @@
# OpenProvider Skill
Manage domains at OpenProvider via REST API.
## Credentials
File: `~/.config/openprovider.env`
```
OP_USERNAME=johan.jongsma@iasobackup.com
OP_PASSWORD=!!Helder06
```
## Authentication
Tokens are short-lived. Get a new one each session:
```bash
TOKEN=$(curl -s -X POST "https://api.openprovider.eu/v1beta/auth/login" \
-H "Content-Type: application/json" \
-d '{"username":"johan.jongsma@iasobackup.com","password":"!!Helder06"}' \
| python3 -c "import json,sys;print(json.load(sys.stdin)['data']['token'])")
```
## Common Operations
### List all domains
```bash
curl -s "https://api.openprovider.eu/v1beta/domains" \
-H "Authorization: Bearer $TOKEN" | python3 -c "
import json,sys
d=json.load(sys.stdin)
for dom in d['data']['results']:
name = dom['domain']['name'] + '.' + dom['domain']['extension']
print(f\"{name:30s} id={dom['id']} exp={dom.get('expiration_date','')} status={dom.get('status','')}\")
"
```
### Change nameservers
```bash
curl -s -X PUT "https://api.openprovider.eu/v1beta/domains/{DOMAIN_ID}" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"name_servers":[{"name":"ns1.example.com"},{"name":"ns2.example.com"}]}'
```
### Check domain availability
```bash
curl -s "https://api.openprovider.eu/v1beta/domains/check" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"domains":[{"name":"example","extension":"com"}]}'
```
### Get TLD pricing
```bash
curl -s "https://api.openprovider.eu/v1beta/tlds/{EXT}?with_price=true" \
-H "Authorization: Bearer $TOKEN"
```
Prices returned as `reseller` (our cost, EUR) and `product` (retail, USD).
### Get domain details
```bash
curl -s "https://api.openprovider.eu/v1beta/domains/{DOMAIN_ID}" \
-H "Authorization: Bearer $TOKEN"
```
## Domain IDs (current)
| Domain | ID |
|---|---|
| busel.nl | 4144291 |
| e-consultants.nl | 4156002 |
| harryhaasjes.nl | 4167447 |
| johanjongsma.nl | 4177800 |
| muskepo.nl | 4191527 |
| zavtra.nl | 4237496 |
| 851brightwaters.com | 4376894 |
| inou.com | 4402885 |
| jongsma.me | 4404264 |
| muskepo.com | 4409213 |
| stpetersburgaquatics.com | 4418712 |
| unbelievable.club | 7303826 |
| x4.trading | 15826788 |
| localbackup.in | 25623799 |
| flourishevents.nl | 28736352 |
## Notes
- .ai domains require 2-year minimum registration
- Cloudflare does NOT support .nl or .in as registrar TLDs
- Strategy: DNS at Cloudflare, registrar stays at OpenProvider
- ~€80 credits remaining, use them as domains renew
- API base: `https://api.openprovider.eu/v1beta/`

368
tanya_mailbox_cleanup.py Normal file
View File

@ -0,0 +1,368 @@
#!/usr/bin/env python3
"""
Tanya's Mailbox Cleanup Script
Connects to Stalwart via IMAP and deletes marketing/spam emails based on sender rules
"""
import imaplib
import ssl
import email
import re
from collections import defaultdict
import time
# Connection details
IMAP_HOST = 'localhost'
IMAP_PORT = 9930
USERNAME = 'tanya'
PASSWORD = 'Tanya-Migrate-2026!'
# Delete rules - case insensitive partial matching on From header
DELETE_RULES = {
'marketing_retail': [
'aubade', 'news.aubade.com', 'eshop.aubade.com',
'landsend', "lands' end",
'impulsepoledance', 'impulse pole',
'metagenics',
'saksfifthavenue', 'saks fifth avenue',
'gilt', 'e.gilt.com',
'nordstrom',
'6pm.com',
'jetsetter',
'swimoutlet', # Store, not USA Swimming
'mixbook',
'island company', 'islandcompanyrum',
'houzz',
'realself',
'victoriassecret', "victoria's secret",
'bellacor',
'lululemon',
'agentprovocateur', 'agent provocateur',
'badkittyexoticwear', 'bad kitty',
'enews.lenovo.com',
'lnepresents',
'macys', "macy's", 'oes.macys.com', 'ops.macys.com',
'shutterfly',
'envato',
'bosshub',
'mail.eviteideas.com', # evite marketing, NOT signupgenius
'rubyrockets',
'sciencetees', 'nhannhan01072021',
'funnytshirts', 'dautay24012004',
'hotelcollection',
'stpetecountryfest',
'skinspirations',
'stpete@bypia.com', 'info@bypia.com', 'bypia', 'pia esthetics',
'facesofsouthtampa',
'blackberry',
'8tracks',
'villanova.nl', # Fashion store, NOT school
'stpetersburgyoga'
],
'spa': [
'tranquility' # All tranquility wellness spa variants
],
'newsletters_spam': [
'optionselite', 'options_elite', 'markantioquia',
'bestamericanstocks',
'massageluxe',
'quora',
'no-reply@mail.instagram.com',
'update@volunteerspot.com', # NOT signupgenius school ones
'news-googleplay', 'googleplay-noreply',
'onedrive photos',
'reddit noreply',
'no-reply@news.proton.me',
'luxerone',
'appstore@new.itunes.com',
'alert@listtrac.com', # Diana Geegan weekly listing reports - NUKE
'noreply@mail.usaswimming.org', # USA Swimming - NUKE
'noreply@inou.com' # inou health - NUKE
],
'security_alerts': [
'noreply@email.apple.com', # Apple security alerts only
'msa@communication.microsoft.com', 'microsoft account team',
'microsoft cashback',
'security-noreply@linkedin.com'
],
'linkedin_marketing': [
'notifications-noreply@linkedin.com', # "you appeared in searches"
'linkedin@e.linkedin.com', # anniversary/marketing
'messages-noreply@linkedin.com', # LinkedIn DMs - now NUKE
'messaging-digest', # Marina Khliaba LinkedIn - now NUKE
'nick flowers invitations@linkedin.com',
'curtis tuttle inmail'
],
'dental_marketing': [
'campaigns@', 'certify', # St Petersburg Dental Center
'lwcrm.com', 'no_reply', # Exceptional Dental
'flexdental'
],
'shipping_notifications': [
'notificatie@edm.postnl.nl', # PostNL tracking only
'jetblueairways@email.jetblue.com' # JetBlue bag tracking
],
'scam_spam': [
'hafnv@nmriv.brickwallsolutions.com',
'contact@assrinfo.org',
'admin@tripathiproductions.com',
'admin@seoreturn.com',
'wasds3134@gmail.com',
'unhto-noreply@chaosfurs',
'veronichowerton9475',
'lisamarshallqonf2',
'praphulnayak316',
'alamnooralam960',
'noreply@qualtrics',
'notification@certifyglobal.com'
],
'paypal_marketing': [
'no_reply@communications', # PayPal Communications
'paypal@e.paypal.com' # PayPal marketing
],
'russian_newsletters': [
'Новости', 'Карандаш', 'Бэбиблог', 'Оргкомитет'
]
}
# Keep rules - these should NOT be deleted
KEEP_RULES = [
# NOTE: inou.com removed (moved to delete), usaswimming.org removed (moved to delete)
'iciparisxl.nl', # Order confirmations
'dotloop', # Diana Geegan transaction docs - KEEP
'@gmail.com', # Diana Geegan personal Gmail - KEEP (will need special handling for Diana Geegan)
'iahp.org', 'clinic@', 'finance@', 'bookstore@', 'rumiko', 'miki', 'kathie',
'johan@jongsma.me', 'tj@jongsma.me',
'noreply@uber.com', 'no-reply@uber.com',
'followup@emcell.com',
'egencia',
'american airlines',
'labcorp',
'ent associates',
"women's care",
'shorecrest school',
'ashley hardy bloomz',
'8th grade parents',
'brittany brodeur',
'n-able benefits',
'no-reply@account.mintmobile.com', 'chat@mintmobile.com',
'geri brady',
'fred lewis', 'punchbowl',
'google location sharing',
'google photos partner sharing',
'curacao immigration',
'william parsons russian heritage',
'dr. davis',
'tora williams volunteer',
'andi mullins signupgenius',
'service@paypal.com', # PayPal invoices
# NOTE: LinkedIn messages removed (moved to delete), Marina Khliaba removed (moved to delete)
'jury struczewski',
'news@insideapple.apple.com', 'apple arcade', 'apple payments', 'apple account safety',
'summer at shorecrest'
]
def matches_pattern(from_header, pattern):
"""Check if from_header contains pattern (case insensitive)"""
if not from_header:
return False
return pattern.lower() in from_header.lower()
def should_keep(from_header):
"""Check if email should be kept based on keep rules"""
# Special case: Diana Geegan - keep dotloop and gmail, nuke listtrac
if 'diana geegan' in from_header.lower():
if 'dotloop' in from_header.lower():
return True # Keep dotloop transaction docs
if '@gmail.com' in from_header.lower():
return True # Keep personal Gmail
if 'listtrac' in from_header.lower():
return False # Nuke listtrac weekly reports
return False # Default to nuke other Diana Geegan emails
for pattern in KEEP_RULES:
if matches_pattern(from_header, pattern):
return True
return False
def should_delete(from_header):
"""Check if email should be deleted based on delete rules"""
if should_keep(from_header):
return False
# Special case: Apple - delete security alerts but keep other Apple
if 'apple' in from_header.lower():
if matches_pattern(from_header, 'noreply@email.apple.com'):
return True # Delete security alerts
return False # Keep other Apple emails
# Check all delete patterns
for category, patterns in DELETE_RULES.items():
for pattern in patterns:
if matches_pattern(from_header, pattern):
return True
return False
def connect_imap():
"""Connect to IMAP server"""
print(f"Connecting to {IMAP_HOST}:{IMAP_PORT}...")
# Create SSL context
context = ssl.create_default_context()
context.check_hostname = False
context.verify_mode = ssl.CERT_NONE
try:
# Connect with SSL
mail = imaplib.IMAP4_SSL(IMAP_HOST, IMAP_PORT, ssl_context=context)
print("SSL connection established")
# Debug mode disabled for production run
# mail.debug = 1
print(f"Attempting login for user: {USERNAME}")
mail.login(USERNAME, PASSWORD)
print("Connected successfully!")
return mail
except Exception as e:
print(f"Connection failed: {e}")
# Try without SSL first to see if server responds
try:
print("Trying non-SSL connection to test server response...")
mail_plain = imaplib.IMAP4(IMAP_HOST, IMAP_PORT)
capabilities = mail_plain.capability()
print(f"Server capabilities: {capabilities}")
mail_plain.logout()
except Exception as plain_e:
print(f"Plain connection also failed: {plain_e}")
raise e
def get_folders(mail):
"""Get all folders/mailboxes"""
status, folders = mail.list()
folder_names = []
for folder in folders:
# Parse folder name from IMAP LIST response
parts = folder.decode().split(' "/" ')
if len(parts) >= 2:
folder_name = parts[1].strip('"')
folder_names.append(folder_name)
return folder_names
def process_folder(mail, folder_name, stats):
"""Process a single folder"""
print(f"\nProcessing folder: {folder_name}")
try:
status, messages = mail.select(folder_name)
if status != 'OK':
print(f"Cannot select folder {folder_name}: {messages}")
return
# Search for all messages
status, messages = mail.search(None, 'ALL')
if status != 'OK':
print(f"Search failed in {folder_name}")
return
message_ids = messages[0].split()
total_messages = len(message_ids)
print(f"Found {total_messages} messages in {folder_name}")
if total_messages == 0:
return
deleted_count = 0
kept_count = 0
# Process messages in batches to avoid memory issues
batch_size = 100
for i in range(0, len(message_ids), batch_size):
batch = message_ids[i:i+batch_size]
for msg_id in batch:
try:
# Fetch header
status, msg_data = mail.fetch(msg_id, '(BODY[HEADER.FIELDS (FROM)])')
if status != 'OK':
continue
# Parse from header
from_header = ""
for response_part in msg_data:
if isinstance(response_part, tuple):
header_data = response_part[1].decode('utf-8', errors='ignore')
if 'From:' in header_data:
from_header = header_data.replace('From:', '').strip()
break
if should_delete(from_header):
# Mark as deleted
mail.store(msg_id, '+FLAGS', '\\Deleted')
deleted_count += 1
stats['deleted'] += 1
# Log what we're deleting
print(f"DELETING: {from_header}")
else:
kept_count += 1
stats['kept'] += 1
except Exception as e:
print(f"Error processing message {msg_id}: {e}")
# Progress update
processed = min(i + batch_size, len(message_ids))
print(f"Processed {processed}/{total_messages} messages...")
# Expunge deleted messages
if deleted_count > 0:
print(f"Expunging {deleted_count} deleted messages...")
mail.expunge()
print(f"Folder {folder_name}: {deleted_count} deleted, {kept_count} kept")
except Exception as e:
print(f"Error processing folder {folder_name}: {e}")
def main():
"""Main cleanup function"""
print("Starting Tanya's mailbox cleanup...")
# Connect to IMAP
mail = connect_imap()
# Get all folders
folders = get_folders(mail)
print(f"Found folders: {folders}")
# Statistics
stats = {'deleted': 0, 'kept': 0}
# Process each folder
for folder in folders:
process_folder(mail, folder, stats)
# Final summary
print(f"\n{'='*50}")
print("CLEANUP COMPLETE!")
print(f"Total emails deleted: {stats['deleted']}")
print(f"Total emails kept: {stats['kept']}")
print(f"{'='*50}")
# Close connection
mail.close()
mail.logout()
print("Connection closed.")
if __name__ == "__main__":
main()

View File

@ -0,0 +1,52 @@
#!/usr/bin/env python3
import imaplib
import ssl
def test_login(username, password):
try:
print(f"Testing login with username: {username}")
context = ssl.create_default_context()
context.check_hostname = False
context.verify_mode = ssl.CERT_NONE
mail = imaplib.IMAP4_SSL('localhost', 9930, ssl_context=context)
result = mail.login(username, password)
print(f"SUCCESS: {username} - {result}")
mail.logout()
return True
except Exception as e:
print(f"FAILED: {username} - {e}")
return False
# Try different username formats
usernames = [
'tanya@jongsma.me',
'tanya',
'Tanya',
'TANYA',
'tanya@inou.com',
'admin' # Fallback admin account
]
password = 'Tanya-Migrate-2026!'
for username in usernames:
if test_login(username, password):
print(f"Found working username: {username}")
break
print()
# Try admin with different password if configured
admin_passwords = [
'Tanya-Migrate-2026!',
'admin',
'password',
''
]
print("\nTrying admin account with different passwords:")
for pwd in admin_passwords:
if test_login('admin', pwd):
print(f"Admin works with password: {pwd}")
break

48
test_imap_connection.py Normal file
View File

@ -0,0 +1,48 @@
#!/usr/bin/env python3
import imaplib
import ssl
def test_connection():
try:
# Test SSL connection
print("Testing SSL connection to localhost:9930...")
context = ssl.create_default_context()
context.check_hostname = False
context.verify_mode = ssl.CERT_NONE
mail = imaplib.IMAP4_SSL('localhost', 9930, ssl_context=context)
print("SSL connection successful!")
# Check capabilities
caps = mail.capability()
print(f"Server capabilities: {caps}")
# Try login
print("Attempting login...")
result = mail.login('tanya@jongsma.me', 'Tanya-Migrate-2026!')
print(f"Login result: {result}")
# List mailboxes
print("Listing mailboxes...")
status, mailboxes = mail.list()
for box in mailboxes:
print(f" {box}")
mail.logout()
print("Test successful!")
except Exception as e:
print(f"Connection failed: {e}")
# Try without SSL
print("\nTrying without SSL...")
try:
mail = imaplib.IMAP4('localhost', 9930)
caps = mail.capability()
print(f"Plain connection capabilities: {caps}")
mail.logout()
except Exception as e2:
print(f"Plain connection also failed: {e2}")
if __name__ == "__main__":
test_connection()