나는 다음과 같은 방법을 사용한다.
1) 암호를 별도의 gpg 암호화 파일에 저장하십시오. 예를 들어~/.passwd/<accountname>.gpg
2) ~/.offlineimap.py
다음과 같은 내용으로 선택한 이름 (예 :)으로 파이썬 확장 파일을 만듭니다
def mailpasswd(acct):
acct = os.path.basename(acct)
path = "/home/<username>/.passwd/%s.gpg" % acct
args = ["gpg", "--use-agent", "--quiet", "--batch", "-d", path]
try:
return subprocess.check_output(args).strip()
except subprocess.CalledProcessError:
return ""
3) .offlineimaprc 파일을 수정하여 파이썬 파일에 대해 알려주고 암호를 읽는 방법을 알려주십시오.
[general]
pythonfile = ~/.offlineimap.py
# ...
[Repository <reponame>]
# add this line for each remote repository
remotepasseval = mailpasswd("<accountname>")
동시에 여러 개의 계정을 확인하고 (별도의 스레드) gpg-agent를 사용하는 경우 각 계정에 대한 암호를 요구합니다. 나는 파일 ( echo "prime" | gpg -e -r foo@bar.com > ~/.passwd/prime.gpg
) 을 생성하여 에이전트를 프라이밍하고 offlineimap을 시작할 때이 파일을 해독하여 gpg 에이전트를 프라이밍합니다. 이렇게하려면 끝에 다음을 추가하십시오 ~/.offlineimap.py
.
def prime_gpg_agent():
ret = False
i = 1
while not ret:
ret = (mailpasswd("prime") == "prime")
if i > 2:
from offlineimap.ui import getglobalui
sys.stderr.write("Error reading in passwords. Terminating.\n")
getglobalui().terminate()
i += 1
return ret
prime_gpg_agent()