IMAP 유휴 서버에서 메일을 수신하기 위해 getmail을 사용하려고 합니다.
Mac OS의 메일 응용 프로그램을 사용하여 동일한 서버(메일 주소 공급자)의 다른 계정으로부터 메일을 받을 수 있으므로 서버는 IMAP Idle을 지원해야 합니다.
그러나 일정 시간이 지나면(얼마나 오래 걸렸는지 알 수 없음) 연결이 닫히고 예외가 발생합니다.
getmail version 4.46.0
Copyright (C) 1998-2012 Charles Cazabon. Licensed under the GNU GPL version 2.
SimpleIMAPSSLRetriever:<address>@<server>:993:
0 messages (0 bytes) retrieved, 0 skipped
IDLE message received
msg 1/1 (1534 bytes) from <sender> delivered to MDA_external command procmail (), deleted
1 messages (1534 bytes) retrieved, 0 skipped
0 messages (0 bytes) retrieved, 0 skipped
0 messages (0 bytes) retrieved, 0 skipped
0 messages (0 bytes) retrieved, 0 skipped
0 messages (0 bytes) retrieved, 0 skipped
0 messages (0 bytes) retrieved, 0 skipped
0 messages (0 bytes) retrieved, 0 skipped
0 messages (0 bytes) retrieved, 0 skipped
0 messages (0 bytes) retrieved, 0 skipped
IDLE message received
Exception: please read docs/BUGS and include the following information in any bug report:
getmail version 4.46.0
Python version 2.7.9 (default, Sep 17 2016, 20:26:04)
[GCC 4.9.2]
Unhandled exception follows:
File "/usr/bin/getmail", line 866, in main
success = go(configs, options.idle)
File "/usr/bin/getmail", line 425, in go
idling = retriever.go_idle(idle)
File "/usr/lib/python2.7/dist-packages/getmailcore/_retrieverbases.py", line 1750, in go_idle
self.conn.send('DONE\r\n')
File "/usr/lib/python2.7/imaplib.py", line 1195, in send
sent = self.sslobj.write(data)
File "/usr/lib/python2.7/ssl.py", line 626, in write
return self._sslobj.write(data)
error: [Errno 104] Connection reset by peer
Please also include configuration information from running getmail
with your normal options plus "--dump".
getmail 구성은 다음과 같습니다.
[retriever]
type = SimpleIMAPSSLRetriever
server = <IMAPserver>
port = 993
username = <username>
password = <password>
mailboxes = ALL
[destination]
type = MDA_external
path = /usr/bin/procmail
[options]
read_all = true
delivered_to = false
received = false
message_log = ~/.getmail/getmail.log
verbose = 2
delete = true
이 문제를 해결하는 방법에 대한 팁이 있는 사람이 있습니까? 나는 getmail을 사용하는 초보자이기 때문에 시작점이 없습니다.
앞으로 Supervisord를 사용할 계획이므로 Supervisor를 사용하여 getmail을 다시 시작할 수 있습니다. 이렇게 하면 작업이 수행되지만 기술적인 관점에서는 좋은 방법이 아닙니다.
답변1
내 getmail 구성이 귀하의 구성과 동일해 보입니다.
그러나 저는 getmail을 2분마다 확인하는 2분 cronjob으로 실행합니다.
*/2 * * * * getmail --quiet
이 크론 작업은 루트가 아닌 내 로그인으로 실행됩니다. 일주일에 한 번씩 같은 연결이 끊어집니다. 작년에 영국에서는 이메일 전달 폭풍이 있었고 Gmail에는 연결 문제가 있었습니다. 연결이 끊어진 경우가 많았습니다.
type = SimpleIMAPSSLRetriever
server = imap.gmail.com
username =
password =
mailboxes = ("Inbox", "[Gmail]/Spam" )
#port = 993
[destination]
type = Maildir
path =
[options]
verbose = 2
read_all = no
delete = yes
message_log = ~xxx/.getmail/log
# prevent getmail from adding a received header to the message as it is saved
received = false
# prevent getmail from adding a delivered_to header to the message as it is saved
delivered_to = false
#delete messages 1 day after first seeing them
delete_after = 1