Kristian
(Kristian)
4월 30, 2020, 9:24오전
1
DigitalOcean의 Discourse Droplet에서 이메일을 보내지 못하고 있습니다. 받는 오류 메시지는 다음과 같습니다:
Delivered mail d8f9bf03-a3ce-4b42-8226-fc4f40a9c724@foo.barbar.com (5099.4ms)
Job exception: 504 5.7.4 Unrecognized authentication type [BL0PR0102CA0036.prod.exchangelabs.com]
제 설정은 다음과 같습니다:
DISCOURSE_SMTP_ADDRESS: smtp.office365.com
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_USER_NAME: foo@bar.com
DISCOURSE_SMTP_PASSWORD: "mypassword"
DISCOURSE_SMTP_ENABLE_START_TLS: true # (선택 사항, 기본값은 true)
Droplet에서 telnet을 시도해 보았지만 오류가 발생하지 않았습니다:
telnet smtp.office365.com 587
문제가 무엇일까요? Python으로 로컬에서 SMTP 설정 조합을 테스트해 보았을 때 정상적으로 작동하므로, 이것이 문제가 아니라고 추정하고 있습니다.
mik
4월 30, 2020, 10:34오전
2
안녕하세요,
다음 내용을 추가해 보세요:
DISCOURSE_SMTP_AUTHENTICATION: login
그리고 app.yml 파일의 끝에 다음을 추가하세요:
- exec: rails r "SiteSetting.notification_email='foo@bar.com'"`
Kristian
(Kristian)
4월 30, 2020, 11:27오전
3
Hi mik
exec 명령이 실패했습니다:
FAILED
--------------------
Pups::ExecError: rails r "SiteSetting.notification_email='foo@bar.com'"` 가 반환값 #<Process::Status: pid 2229 exit 2>와 함께 실패했습니다
실패 위치: /pups/lib/pups/exec_command.rb:112:in `spawn'
exec 가 파라미터 "rails r \"SiteSetting.notification_email='foo@bar.com'\"`와 함께 실패했습니다
9628e31c775b74ad0f3a555b6af27701aa40b1f8b86419fa44a7c389cc5e34ae
** BOOTSTRAP 실패 ** 이전의 오류 메시지를 확인하려면 위로 스크롤하세요. 오류가 하나 이상 있을 수 있습니다.
./discourse-doctor 도구가 문제를 진단하는 데 도움이 될 수 있습니다.
Kristian
(Kristian)
4월 30, 2020, 12:28오후
4
exec 명령을 제외하고 다음을 추가한 업데이트를 수행해도 오류가 반환되지 않습니다.
DISCOURSE_SMTP_AUTHENTICATION: login
오류 대신 다음과 같은 메시지만 표시됩니다:
Delivered mail be6d8718-5445-48cc-a120-6d6d1eab9eb7@discourse.bar.com (4307.2ms)
하지만 여전히 받은 편지함에 이메일이 도착하지 않습니다(스팸 폴더도 확인했습니다).
mik
4월 30, 2020, 1:34오후
5
올바른 설정을 찾고 오류 메시지를 확인해 보려면 다음을 시도해 보세요:
docker exec -t -i id_of_your_container /bin/bash
그 다음 컨테이너 안에서:
apt install s-nail
echo "This is the message body and contains the message" | s-nail -r "foo@bar.com" -s mysubject -S "smtp=smtp.office365.com:587" -S smtp-use-starttls -S smtp-auth=login -S smtp-auth-user="foo@bar.com" -S smtp-auth-password="xxxxxxxx" -S ssl-verify=ignore youremail@example.com
다양한 값(예: smtp-auth=login)을 변경하여 올바른 값을 찾아볼 수 있습니다. 그러면 더 정확한 오류 메시지를 확인할 수 있을지도 모릅니다.
Kristian
(Kristian)
4월 30, 2020, 3:01오후
6
echo "This is the message body and contains the message" | s-nail -r "foo@bar.com" -s mysubject -S "smtp=smtp.office365.com:587" -S smtp-use-starttls -S smtp-auth=login -S smtp-auth-user="foo@bar.com" -S smtp-auth-password="xxxxxxxx" -S ssl-verify=ignore youremail@example.com
이렇게 하니까 작동했고 메일을 받았습니다! 다만 비밀번호가 '!'로 시작해서 smtp-auth-password="xxxxxxxx"를 작은따옴표로 바꿔야 했습니다.
제 설정과 비교했을 때 볼 수 있는 유일한 차이는 이 플래그입니다:
-S ssl-verify=ignore
이것도 추가해야 하나요?
도움 주셔서 감사합니다!
mik
4월 30, 2020, 3:14오후
7
다음 내용을 추가해 보세요:
DISCOURSE_SMTP_OPENSSL_VERIFY_MODE: none
설정 파일에서 이 값은 ssl-verify=ignore 와 동일합니다.
Kristian
(Kristian)
4월 30, 2020, 3:59오후
8
에러는 없는데 여전히 받은 편지함에 이메일이 도착하지 않아요 지금까지 설정을 정리하면 다음과 같습니다:
DISCOURSE_SMTP_ADDRESS: smtp.office365.com
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_USER_NAME: info@foo.com
DISCOURSE_SMTP_PASSWORD: 'xxx'
DISCOURSE_SMTP_ENABLE_START_TLS: true # (선택 사항, 기본값 true)
DISCOURSE_SMTP_AUTHENTICATION: login
DISCOURSE_SMTP_OPENSSL_VERIFY_MODE: none
mik
4월 30, 2020, 4:31오후
9
다시 한 번 추가를 시도해 주세요 (s-nail 커맨드 라인 테스트의 “-r” 옵션과 _동일_합니다 :
- exec: rails r "SiteSetting.notification_email='foo@bar.com'"`
이메일은 계정과 동일해야 합니다.
또한 app.yml 파일의 들여쓰기를 확인하고, 앞의 "-"를 잊지 마세요. 공백 2칸, 그다음 “-”, 그다음 공백 1칸, 그리고 “exec…” 순서입니다
Capstan
(William Carter)
5월 3, 2020, 1:34오전
10
저도 같은 문제를 겪고 있습니다. 저도 Digital Ocean에서 Discourse를 설치한 드롭렛을 생성했습니다. 위에서 제시된 모든 방법을 시도하고, 매번 재빌드(sudo ./launcher rebuild app)한 후 “sudo ./discourse-doctor” 명령을 실행해 보았습니다.
504 5.7.4 Unrecognized authentication type [BL0PR01CA0015.prod.exchangelabs.com]
저도 컨테이너 내에서 s-nail을 사용했을 때 문제가 없었습니다. “-S ssl-verify=ignore” 절을 생략하고 테스트해도 정상적으로 작동했습니다. Digital Ocean 드롭렛에 설치되는 구성이 이메일을 올바르게 보내는지 확인해 주실 수 있는 분 계신가요?
riking
(Kane York)
5월 3, 2020, 6:32오전
12
메일 관리자에게 smtp_authentication의 유효한 값이 무엇인지 확인한 후, DISCOURSE_SMTP_AUTHENTICATION을 작동하는 값으로 설정하세요.
Kristian
(Kristian)
5월 3, 2020, 9:14오전
13
도움 주셔서 감사합니다. 저는 포기하고 다른 포럼 솔루션으로 전환했습니다.
Capstan
(William Carter)
5월 3, 2020, 2:38오후
14
마이크로소프트(Microsoft)이며, 안내 사항은 다음과 같습니다. smtp_authentication 항목은 지정되어 있지 않습니다.
이런 유형의 서버를 지원하지 않나요? 단순히 계정을 만들고 서버에 연결한 뒤, 어떤 설정을 해야 하는지 알려줄 수 있을까요?
DISCOURSE_SMTP_OPENSSL_VERIFY_MODE: none
이렇게 하니까 제 문제가 해결되었습니다. 감사합니다!