
이건 좀 이상한데 어떤 조언이라도 주시면 감사하겠습니다. 이것이 ServerFault에 더 나은 경우 알려주세요.
나는 이것이 AskDifferent 또는 이와 유사한 것에 속하지 않는다고 생각합니다. 메일과 관련하여 iOS 장치에서 나타나는 동작에 대해 이야기하고 있는 동안 다음과 같은 두 가지 주요 이유 때문에 이것이 서버 측의 문제라고 생각합니다.
- 서버 업데이트 후에만 동작이 시작되었습니다.
- 이 동작은 이 서버의 계정에서만 발생합니다. 동일한 방식으로 설정한 두 번째 메일 서버에는 동일한 iOS 장치에서 이 문제가 없습니다.
문제
약 한 달 전에 메일 서버를 Debian 11에서 12로 업데이트했습니다. 모든 것이 문제 없이 진행되는 것 같았고, syslog에 오류도 없었으며, 평소 클라이언트 소프트웨어에서 이메일을 보내고 받을 수 있으므로 모두 좋습니다.
다음 날에는 iPhone이나 iPad의 하위 폴더로 이메일을 이동할 수 없다는 사실을 발견했습니다. 이동하고 싶은 이메일을 선택한 다음 이동하고 싶은 폴더를 선택하면 해당 이메일이 목록에서 사라지고 즉시 돌아옵니다. 이는 이메일 삭제(예: 휴지통으로 보내기) 또는 받은 편지함과 정크 폴더 사이의 메일 이동에는 영향을 미치지 않습니다.
또한 메일 폴더를 탐색하면 "최상위" 폴더는 괜찮지만 그 안에 있는 모든 폴더는 "계정 오류" 메시지를 발생시켜 계정 비밀번호를 확인하도록 설정으로 이동한다는 사실도 발견했습니다.
Inbox <–– Accessible
Financial <–– Accessible
Financial/Receipts <–– Inaccessible on iOS clients
mail.log 파일을 사용하여 이러한 작업을 수행하면 tail
정상적으로 보입니다. 폴더 검색의 경우: 내 사용자에 대해 연결이 설정된 다음 "전송된 명령이 없습니다"라고 표시된 상태로 로그아웃합니다. 이메일 이동의 경우: 내 사용자에 대해 설정된 연결이 두 번 발생하고 그 외에는 발생하지 않습니다.
내 Mac에서는 이 모든 것이 문제가 되지 않습니다. 하지만 여전히 해당 폴더를 찾아볼 수 있고 폴더 간에 메시지를 이동할 수 있으며 모든 것이 문제가 되지 않습니다. 내 IMAP 접두사는 세 장치 모두에서 동일합니다(비어 있음).
Dovecot에서는 내 메일함 위치가 "maildir:~/Maildir:LAYOUT=fs"로 설정되어 있습니다.
여기 누군가가 이전에 이와 같은 일을 겪었기를 바랍니다. 또는 원인을 찾는 데 도움이 될 수 있는 서버나 클라이언트로부터 추가 정보를 얻을 수 있는 위치를 알려줄 수 있습니다.
읽어 주셔서 감사합니다!
편집 1(4월 2일):
IMAP List
명령은 내가 기대하는 대로 모든 메일 폴더를 생성합니다. 예:
2 list "" "*"
* LIST (\HasChildren) "/" Financial
* LIST (\HasChildren) "/" Financial/Receipts
* LIST (\HasNoChildren) "/" "Financial/Receipts/eBay Receipts"
* LIST (\HasNoChildren \Sent) "/" Sent
* LIST (\HasNoChildren \Drafts) "/" Drafts
* LIST (\HasNoChildren \Trash) "/" Trash
* LIST (\HasNoChildren \Junk) "/" Junk
* LIST (\HasNoChildren) "/" INBOX
...
마찬가지로 lsub
제가 보기에도 이상해 보이지는 않았습니다...
3 lsub "" "*"
* LSUB (\Junk) "/" Junk
* LSUB (\Trash) "/" Trash
* LSUB (\Drafts) "/" Drafts
* LSUB (\Sent) "/" Sent
* LSUB () "/" Financial
* LSUB () "/" Financial/Receipts
* LSUB () "/" "Financial/Receipts/eBay Receipts"
...
죄송합니다. 언급하는 것을 잊어버렸습니다. 구분 기호가 "/"로 설정되어 있습니다. 이는 namespace
다음을 확인합니다.
4 namespace
* NAMESPACE (("" "/")) NIL NIL
편집 2(4월 3일):
또한 동시에 동일한 방식으로 업데이트한 두 번째 메일 서버에는 내 장치에서 이 문제가 발생하지 않는다는 사실도 발견했습니다. 비교를 위해 오늘 밤 두 서버 모두에서 구성 파일을 덤프할 예정이며 이를 통해 동작을 설명할 수 있기를 바랍니다.
편집 3(4월 3일):
새로운 트위스트. iPhone의 메일에서 어떤 IMAP 명령과 응답이 발생하는지 확인하기 위해 개발자 "메일" 및 "동기화" 로깅 프로필을 휴대폰에 설치했는데, 휴대폰이 구분 기호 없이 폴더를 선택하려고 시도하고 있음을 발견했습니다 15 SELECT "FinancialReceipts"
. 15 SELECT "Financial/Receipts"
). 그러나 이상하게도 다른 모든 명령에서는 구분 기호(예: STATUS
)를 사용합니다.
나는원시 로그Dovecot의 10-master.conf 파일에 config를 추가하고 실행하여 doveadm reload
내 계정에 대한 IMAP 세션 로깅을 활성화했습니다.
.in 및 .out 파일의 첫 번째 쌍은 이제 올바른 구분 기호와 함께 전송되는 SELECT 명령을 보여줍니다. 휴대폰에서 폴더 몇 개를 탐색하는 것을 테스트했는데 동기화가 잘 되었고 메시지를 하위 폴더로도 이동할 수 있었습니다.
rawlog 구성을 삭제하고 Dovecot을 다시 로드했는데 처음에는 메시지 이동 및 하위 폴더 탐색이 작동했지만 이제 약 30분 후에 다시 중지되었습니다.
이전에 이 문제를 해결하기 위해 Dovecot을 다시 시작했지만 아무런 차이가 없었기 때문에 실행이 doveadm reload
문제를 다시 작동하게 만든 것은 아니라고 생각합니다. Rawlogging을 활성화했을 때 Dovecot의 상태 변경과 관련이 있다고 생각합니다...