Sincronizar mensagens com o offlineimap via systemd service / timer; obtendo a senha do keyring do gnome

2

Estou tentando autosync meu email no mutt usando o offlineimap através de um serviço systemd. Estou a utilizar estes ficheiros e movi-os para a pasta /etc/systemd/user .

No entanto, estou armazenando minha senha por meio do keyring do gnome e recuperando-a via secret-tool lookup user [user] domain gmail.com . Isso funciona na linha de comando, mas o serviço retorna o seguinte:

user@computer:~/.dotfiles$ systemctl --user -l status offlineimap.service
● offlineimap.service - Offlineimap Service
   Loaded: loaded (/etc/systemd/user/offlineimap.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Fri 2016-06-10 10:03:43 CEST; 11s ago
  Process: 5193 ExecStart=/usr/bin/offlineimap -o -u syslog (code=exited, status=1/FAILURE)
 Main PID: 5193 (code=exited, status=1/FAILURE)

Jun 10 10:03:40 computer offlineimap[5193]: Establishing connection to imap.gmail.com:993
Jun 10 10:03:43 computer ERROR[5193]: While attempting to sync account 'MyAccount'
                                       Command 'secret-tool lookup user myaccount domain gmail.com' returned non-zero exit status 1
Jun 10 10:03:43 computer offlineimap[5193]: *** Finished account 'MyAccount' in 0:03
Jun 10 10:03:43 computer ERROR[5193]: Exceptions occurred during the run!
Jun 10 10:03:43 computer ERROR[5193]: While attempting to sync account 'MyAccount'
                                       Command 'secret-tool lookup user myaccount domain gmail.com' returned non-zero exit status 1
Jun 10 10:03:43 computer Traceback[5193]:   File "/usr/lib/python2.7/site-packages/offlineimap/accounts.py", line 263, in syncrunner
                                             self.__sync()
                                           File "/usr/lib/python2.7/site-packages/offlineimap/accounts.py", line 326, in __sync
                                             remoterepos.getfolders()
                                           File "/usr/lib/python2.7/site-packages/offlineimap/repository/IMAP.py", line 390, in getfolders
                                             imapobj = self.imapserver.acquireconnection()
                                           File "/usr/lib/python2.7/site-packages/offlineimap/imapserver.py", line 511, in acquireconnection
                                             self.__authn_helper(imapobj)
                                           File "/usr/lib/python2.7/site-packages/offlineimap/imapserver.py", line 411, in __authn_helper
                                             if func(imapobj):
                                           File "/usr/lib/python2.7/site-packages/offlineimap/imapserver.py", line 350, in __authn_login
                                             self.__loginauth(imapobj)
                                           File "/usr/lib/python2.7/site-packages/offlineimap/imapserver.py", line 203, in __loginauth
                                             imapobj.login(self.username, self.__getpassword())
                                           File "/usr/lib/python2.7/site-packages/offlineimap/imapserver.py", line 159, in __getpassword
                                             self.password = self.repos.getpassword() or \
                                           File "/usr/lib/python2.7/site-packages/offlineimap/repository/IMAP.py", line 332, in getpassword
                                             return self.localeval.eval(passwd)
                                           File "/usr/lib/python2.7/site-packages/offlineimap/localeval.py", line 48, in eval
                                             return eval(text, names)
                                           File "<string>", line 1, in <module>
                                           File "/home/user/.mutt/offlineimap.py", line 8, in get_keychain_pass
                                             stderr=subprocess.STDOUT)
                                           File "/usr/lib64/python2.7/subprocess.py", line 573, in check_output
                                             raise CalledProcessError(retcode, cmd, output=output)
Jun 10 10:03:43 computer systemd[1075]: offlineimap.service: Main process exited, code=exited, status=1/FAILURE
Jun 10 10:03:43 computer systemd[1075]: Failed to start Offlineimap Service.
Jun 10 10:03:43 computer systemd[1075]: offlineimap.service: Unit entered failed state.
Jun 10 10:03:43 computer systemd[1075]: offlineimap.service: Failed with result 'exit-code'.

Eu já descobri que o problema pode estar na comunicação do dbus, mas não sei como consertá-lo. Alguém pode fornecer uma visão?

Editar:

Eu resolvi o aviso (inofensivo) relacionado a XOAUTH2 com a seguinte adição à seção [Repository YOUR_ACCOUNT-remote] como sugerido por este tópico do fórum .

auth_mechanisms = LOGIN

No entanto, o problema não está relacionado, mas para evitar confusão, atualizei o erro acima de acordo.

    
por Ruben 09.06.2016 / 14:13

1 resposta

0

Uma solução que posso imaginar, tentarei testá-lo mais tarde, é o uso de variáveis ambientais do systemd ou ambiente de execução systemd e deixe seu script de senha offlineIMAP fazer eco da variável de ambiente qual é a senha. Você também pode tentar usar certificados de cliente

    
por 08.03.2018 / 17:34