mail-receiver를 릴리스 버전으로 업데이트

관리자 대시보드에서 이 메시지를 확인하고 이곳에 오셨다면:

mail-receiver의 구버전이 감지되었습니다..

정확한 곳에 오셨습니다.

mail-receiver를 업데이트하려면 discourse 서버에 ssh로 접속하여 다음 두 명령을 실행해 주세요:

sed -i 's/mail-receiver:.*/mail-receiver:release/' /var/discourse/containers/mail-receiver.yml
/var/discourse/launcher rebuild mail-receiver

자세한 내용은 아래를 계속 읽으시면 됩니다.

왜 mail-receiver를 업데이트해야 할까요?

비추천되는 API 인증 방법을 사용하지 않는 더 새로운 버전으로 mail-receiver를 업데이트해야 합니다.

mail-receiver를 처음 설정할 때 하드코딩된 버전 번호가 포함된 containers/mail-receiver.yml 파일을 설정하도록 안내받았습니다:

base_image: discourse/mail-receiver:x.x.x

이 번호를 수동으로 업데이트하지 않고도 향후 업데이트를 받기 위해 버전 번호를 특정 버전 대신 release로 업데이트할 수 있습니다.

/var/discourse/containers/mail-receiver.yml 파일을 편집하여 다음 기본 이미지를 사용하도록 변경해 주세요:

base_image: discourse/mail-receiver:release

원하시면 이 명령을 실행하여 파일을 자동으로 편집할 수도 있습니다:

sed -i 's/mail-receiver:.*/mail-receiver:release/' /var/discourse/containers/mail-receiver.yml

이렇게 파일을 편집한 후 다음을 실행할 수 있습니다:

/var/discourse/launcher rebuild mail-receiver

이로써 mail-receiver의 최신 버전으로 업데이트됩니다.

21개의 좋아요

업데이트 가이드를 올려주셔서 감사합니다 @blake! 그런데 어떤 이유인지 모르겠지만 /var/discourse/containers/ 디렉터리에 mail-receiver.yml 파일이 없는 것 같습니다.

root@nomadgate-community-eu:/var/discourse# sed -i 's/mail-receiver:.*/mail-receiver:release/' /var/discourse/containers/mail-receiver.yml
sed: can't read /var/discourse/containers/mail-receiver.yml: No such file or directory

확실히 하기 위해 실제로 어떤 파일이 있는지 확인하려고 ls 명령을 입력해 보았습니다:

root@nomadgate-community-eu:/var/discourse/containers# ls
app.yml  app.yml.save

mail-receiver.yml 파일이 없는 이유가 무엇인지, 그리고 이를 해결하기 위해 무엇을 할 수 있는지 아이디어가 있으신가요? 파일이 없는데도 제 커뮤니티에서는 메일 리시버(Mail Receiver)가 정상적으로 작동하는 것 같습니다…

수정: 생각해 보니, 저는 아마도 "mail-receiver"를 설정해 본 적이 없는 것 같습니다. 저는 SendGrid의 인바운드 파싱 웹훅 기능을 사용하고 있는데, 왜 제 Discourse 대시보드에서 이 오류를 보고 있는 걸까요?

그런데 이 기능을 작동시키기 위해 API 자격 증명을 다음과 같은 URL 매개변수로 전달하고 있습니다: /admin/email/handle_mail?api_key=xxx&api_username=xxx — 앞으로는 이것이 더 이상 작동하지 않을까요? 그리고 만약 그렇다면, SendGrid를 통한 인바운드 메시지 지원을 유지할 다른 방법이 있을까요?

2개의 좋아요

동의합니다. 제 Discourse 설치 환경에는 containers/mail-receiver.yml 파일이 없습니다. 지금까지는 별다른 악영향을 확인하지 못했습니다.

@dltj SendGrid나 유사한 서비스를 사용하시나요?

이렇게요: 메일 수신기를 설치하지 않았다면 업그레이드가 필요하지 않습니다.

2개의 좋아요

그렇지만 이 엔드포인트를 사용할 수 있도록 SendGrid 또는 다른 프로바이더와 연동할 수 있는지 여부에 따라 쿼리 파라미터 기반 API 호출에 변경 사항이 생길 수 있으므로, 가능한 한 많은 정보를 모으고 있습니다.

3개의 좋아요

아니요, 저는 SendGrid를 사용하지 않습니다 – 이 Discourse 설치 환경은 몇 년 전에 구축된 것이며, 당시에는 /admin/email/handle_mail API를 사용하여 수신 메일을 Discourse로 푸시하는 AWS Lambda를 작성했습니다. 해당 Lambda 스크립트는 Python 2.7을 사용했으므로 재작성이 필요한 시점입니다… 아마도 현재 사용 가능한 옵션들을 살펴볼 때가 된 것 같습니다.

이상하게도, *“구버전의 mail-receiver를 감지했습니다…”*라는 메시지가 더 이상 제 Discourse 관리자 대시보드에 표시되지 않습니다. 음. 그건 아닙니다 – 메시지는 여전히那里에 있습니다. 아마도 며칠 동안 /admin/email/handle_mail 엔드포인트로 수신 메시지가 들어오지 않아서 사라진 것처럼 보였을 수도 있고, 테스트 메시지를 보냈을 때 다시 나타난 것일까요?

방금 확인해 봤는데, Discourse로의 수신 메일 기능은 여전히 정상적으로 작동합니다.

1개의 좋아요

맞습니다. 메시지를 전혀 받지 못하면 24시간 후에 타임아웃됩니다.

2개의 좋아요

아, 알겠습니다. 그래서 대시보드 경고가 'mail-receiver’를 사용하고 있기 때문이 아니라, 이제 더 이상 사용되지 않는 api_key와 api_username을 API 엔드포인트의 쿼리 파라미터로 사용하고 있기 때문이군요. 자, 수정하기는 간단하네요. 힌트 주셔서 감사합니다.

3개의 좋아요