OfflineIMAP / offlineimap

Read/sync your IMAP mailboxes (python2) [LEGACY: move to offlineimap3]
http://www.offlineimap.org
Other
1.78k stars 360 forks source link

maildir-windows-compatible = yes option, not working as expected #725

Open thephatmaster opened 2 years ago

thephatmaster commented 2 years ago

I'm having some difficulty getting the maildir-windows-compatible = yes option to allow me to have my MailDir on FAT storage (an SD card on a small dual-boot device)

It seems : is still present in filenames that offlineimap is trying to create

General informations

Configuration file offlineimaprc

[general]
# GmailAcccount, OutlookAccount
accounts = GmailAccount, OutlookAccount
maildir-windows-compatible = yes
# ----------- Gmail Account -----------

[Account GmailAccount]
localrepository = LocalGmailAccount
remoterepository = RepositoryGmailAccount
quick = 10

[Repository LocalGmailAccount]
type = Maildir
localfolders = /media/<USER>/Storage_512/Maildir/GmailAccount

[Repository RepositoryGmailAccount]
type = Gmail
maxconnections = 2
remoteuser = <USER>@gmail.com
remotepass = <PASS>
sslcacertfile = /etc/ssl/certs/ca-certificates.crt

[Windows compatibility]
maildir-windows-compatible = yes
# ----------- OutlookAccount -----------

[Account OutlookAccount]
localrepository = LocalOutlookAccount
remoterepository = RemoteOutlookAccount

[Repository LocalOutlookAccount]
type = Maildir
localfolders = /media/<USER>/Storage_512/Maildir/OutlookAccount

[Repository RemoteOutlookAccount]
type = IMAP
ssl = yes
remotehost = outlook.office365.com
remoteuser = <ACC DETAILS>
remotepass = <PASS>Xax11053 
sslcacertfile = /etc/ssl/certs/ca-certificates.crt

[Windows compatibility]
maildir-windows-compatible = yes

pythonfile (if any)

REMOVE PRIVATE DATA.

Logs, error

OfflineIMAP 7.2.3
  Licensed under the GNU GPL v2 or any later version (with an OpenSSL exception)
imaplib2 v2.57 (system), Python v2.7.18, OpenSSL 1.1.1f  31 Mar 2020
Account sync GmailAccount:
 *** Processing account GmailAccount
 Establishing connection to imap.gmail.com:993 (RepositoryGmailAccount)
Folder [Gmail]/All Mail [acc: GmailAccount]:
 Creating new Local Status db for LocalGmailAccount:[Gmail].All Mail
Folder [Gmail]/Archive [acc: GmailAccount]:
 Creating new Local Status db for LocalGmailAccount:[Gmail].Archive
Folder [Gmail]/All Mail [acc: GmailAccount]:
 Syncing [Gmail]/All Mail: Gmail -> Maildir
Folder [Gmail]/Archive [acc: GmailAccount]:
 Syncing [Gmail]/Archive: Gmail -> Maildir
 Establishing connection to imap.gmail.com:993 (RepositoryGmailAccount)
 Copy message UID 2 (1/1) RepositoryGmailAccount:[Gmail]/Archive -> LocalGmailAccount:[Gmail].Archive
Copy message from RepositoryGmailAccount:[Gmail]/Archive:
 ERROR: Copying message 2 [acc: GmailAccount]
  [Errno 2] No such file or directory: '/media/<USER>/Storage_512/Maildir/GmailAccount/[Gmail].Archive/tmp/1665409952_0.23728.<USER>-surfacego,U=2,FMD5=312a26d26d7c877e152f72dd5ddbc11f:2,S'
Folder [Gmail]/Drafts [acc: GmailAccount]:
 Creating new Local Status db for LocalGmailAccount:[Gmail].Drafts
 Syncing [Gmail]/Drafts: Gmail -> Maildir
Thread 'Copy message from RepositoryGmailAccount:[Gmail]/Archive' terminated with exception:
Traceback (most recent call last):
  File "/usr/share/offlineimap/offlineimap/threadutil.py", line 160, in run
    Thread.run(self)
  File "/usr/lib/python2.7/threading.py", line 754, in run
    self.__target(*self.__args, **self.__kwargs)
  File "/usr/share/offlineimap/offlineimap/folder/Gmail.py", line 289, in copymessageto
    super(GmailFolder, self).copymessageto(uid, dstfolder, statusfolder, register)
  File "/usr/share/offlineimap/offlineimap/folder/Base.py", line 844, in copymessageto
    new_uid = dstfolder.savemessage(uid, message, flags, rtime)
  File "/usr/share/offlineimap/offlineimap/folder/Maildir.py", line 393, in savemessage
    tmpname = self.save_to_tmp_file(messagename, content)
  File "/usr/share/offlineimap/offlineimap/folder/Maildir.py", line 318, in save_to_tmp_file
    os.O_EXCL|os.O_CREAT|os.O_WRONLY, 0o666)
OSError: [Errno 2] No such file or directory: '/media/<USER>/Storage_512/Maildir/GmailAccount/[Gmail].Archive/tmp/1665409952_0.23728.<USER>-surfacego,U=2,FMD5=312a26d26d7c877e152f72dd5ddbc11f:2,S'

Last 3 debug messages logged for Copy message from RepositoryGmailAccount:[Gmail]/Archive prior to exception:
thread: Register new thread 'Copy message from RepositoryGmailAccount:[Gmail]/Archive' (account 'GmailAccount')
imap: Returned object from fetching 2: 'Delivered-To: stephenallen37@gmail.com
Received: by 10.194.202.162 with SMTP id kj2csp1293295wjc;
        Wed, 28 Jan 2015 06:34:00 -0800 (PST)
Return..."></body></html>
--001a11c3226617f971050db7431c--
'
maildir: Write mail '[Gmail].Archive:2' with flags set(['S'])
ERROR: Exceptions occurred during the run!
ERROR: Copying message 2 [acc: GmailAccount]
  [Errno 2] No such file or directory: '/media/<USER>/Storage_512/Maildir/GmailAccount/[Gmail].Archive/tmp/1665409952_0.23728.<USER>-surfacego,U=2,FMD5=312a26d26d7c877e152f72dd5ddbc11f:2,S'

Traceback:
  File "/usr/share/offlineimap/offlineimap/folder/Base.py", line 844, in copymessageto
    new_uid = dstfolder.savemessage(uid, message, flags, rtime)
  File "/usr/share/offlineimap/offlineimap/folder/Maildir.py", line 393, in savemessage
    tmpname = self.save_to_tmp_file(messagename, content)
  File "/usr/share/offlineimap/offlineimap/folder/Maildir.py", line 318, in save_to_tmp_file

Steps to reproduce the error