Digital Ocean, SendGrid, Netlify - 관리자 계정 등록 이메일이 도착하지 않음

그래서 ssh에서 아래 명령어를 실행해 보았습니다.

openssl s_client -starttls smtp -connect smtp.sendgrid.net:587
EHLO

그리고 다음 응답을 받았습니다.

CONNECTED(00000005)
depth=2 C = US, ST = Arizona, L = Scottsdale, O = "GoDaddy.com, Inc.", CN = Go Daddy Root Certificate Authority - G2
verify return:1
depth=1 C = US, ST = Arizona, L = Scottsdale, O = "GoDaddy.com, Inc.", OU = http://certs.godaddy.com/repository/, CN = Go Daddy Secure Certificate Authority - G2
verify return:1
depth=0 OU = Domain Control Validated, CN = *.smtp.sendgrid.net
verify return:1
---
Certificate chain
 0 s:OU = Domain Control Validated, CN = *.smtp.sendgrid.net
   i:C = US, ST = Arizona, L = Scottsdale, O = "GoDaddy.com, Inc.", OU = http://certs.godaddy.com/repository/, CN = Go Daddy Secure Certificate Authority - G2
 1 s:C = US, ST = Arizona, L = Scottsdale, O = "GoDaddy.com, Inc.", OU = http://certs.godaddy.com/repository/, CN = Go Daddy Secure Certificate Authority - G2
   i:C = US, ST = Arizona, L = Scottsdale, O = "GoDaddy.com, Inc.", CN = Go Daddy Root Certificate Authority - G2
 2 s:C = US, ST = Arizona, L = Scottsdale, O = "GoDaddy.com, Inc.", CN = Go Daddy Root Certificate Authority - G2
   i:C = US, O = "The Go Daddy Group, Inc.", OU = Go Daddy Class 2 Certification Authority
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIGvzCCBaegAwIBAgIIR8KHdm5J8J0wDQYJKoZIhvcNAQELBQAwgbQxCzAJBgNV
BAYTAlVTMRAwDgYDVQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMRow
GAYDVQQKExFHb0RhZGR5LmNvbSwgSW5jLjEtMCsGA1UECxMkaHR0cDovL2NlcnRz
LmdvZGFkZHkuY29tL3JlcG9zaXRvcnkvMTMwMQYDVQQDEypHbyBEYWRkeSBTZWN1
cmUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IC0gRzIwHhcNMTgxMjI4MjAyMjIwWhcN
MjAxMjI4MjAyMjIwWjBBMSEwHwYDVQQLExhEb21haW4gQ29udHJvbCBWYWxpZGF0
ZWQxHDAaBgNVBAMMEyouc210cC5zZW5kZ3JpZC5uZXQwggEiMA0GCSqGSIb3DQEB
AQUAA4IBDwAwggEKAoIBAQC/xYdx1oyPHcE6EdH61RXJK9JYA9p9GOrYhJ6rVq2c
zpGR3/4EHwaZO/daZxvTn5p3LRBBW5KBBBNCLa0Vl84dLt6skUg3oWo17mim2ly1
AegTwN15/wxqq8Hf2G4Sr9g00zlBAEs2HeOyr3SxEvLCLscYtIKG7cD+CsUi0JT6
EeDXCVL04nJIheFh4h9TRcCook97yuqt7muySrarzekatOnpv4kuU8bk0uq4ym5K
NO4zRUiCRy7JXAC2KZ4+0qhSlPFACRvygdPxK5ICvQq8/ZPlRWVn3yrWnQ4kEekp
jDT4ucOpv8V/SxYmsBRqFD35ASDj6PZLYmJFb9XdzGCzAgMBAAGjggNFMIIDQTAM
BgNVHRMBAf8EAjAAMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAOBgNV
HQ8BAf8EBAMCBaAwNwYDVR0fBDAwLjAsoCqgKIYmaHR0cDovL2NybC5nb2RhZGR5
LmNvbS9nZGlnMnMxLTkwMS5jcmwwXQYDVR0gBFYwVDBIBgtghkgBhv1tAQcXATA5
MDcGCCsGAQUFBwIBFitodHRwOi8vY2VydGlmaWNhdGVzLmdvZGFkZHkuY29tL3Jl
cG9zaXRvcnkvMAgGBmeBDAECATB2BggrBgEFBQcBAQRqMGgwJAYIKwYBBQUHMAGG
GGh0dHA6Ly9vY3NwLmdvZGFkZHkuY29tLzBABggrBgEFBQcwAoY0aHR0cDovL2Nl
cnRpZmljYXRlcy5nb2RhZGR5LmNvbS9yZXBvc2l0b3J5L2dkaWcyLmNydDAfBgNV
HSMEGDAWgBRAwr0njsw0gzCiM9f7bLPwtCyAzjAxBgNVHREEKjAoghMqLnNtdHAu
c2VuZGdyaWQubmV0ghFzbXRwLnNlbmRncmlkLm5ldDAdBgNVHQ4EFgQUqLajl4xR
pZ1YZD2l6KsTfcmd8t4wggF9BgorBgEEAdZ5AgQCBIIBbQSCAWkBZwB2AKS5CZC0
GFgUh7sTosxncAo8NZgE+RvfuON3zQ7IDdwQAAABZ/Z7aIYAAAQDAEcwRQIhAOhF
95cuap1qIlSVtRzNkaUbNHxpgj+RoBfxcSFgqlBZAiBNsRnVaIwWMBoR9s+a9YwC
neLWWN777jRjew5mv2DVbwB2AO5Lvbd1zmC64UJpH6vhnmajD35fsHLYgwDEe4l6
qP3LAAABZ/Z7bY8AAAQDAEcwRQIgJZMibCSMJDwTwEp64XSQQXCuYtKJDvhT7FwK
rxoyH6oCIQCz1HVQbPLwMOXQPBRQFtpYEb18JCVdzlh8+f0hITgC5gB1AF6nc/nf
VsDntTZIfdBJ4DJ6kZoMhKESEoQYdZaBcUVYAAABZ/Z7cugAAAQDAEYwRAIgQoxF
Fak6Aq9tVDo5BjaSl+90pZ8928SmDpA3XrQ7BrQCIHdOuigFbYK96gJ/GPaVNGqc
w5FKxw9Z8TnpjZH1GEC/MA0GCSqGSIb3DQEBCwUAA4IBAQBbBTL603nJ9H7ClsKR
g/XmFpGwQ4C5OftGmZ/Z/CG9iqOkLB2TPqdJ9NZRruMpWjnOnvDFoQ3NMSfDYdsn
25fzh30fx2+zIWW2IdKa1yO4A9tr3cxn4iINy/+dcNmF6tciGJtdBhZZgpyqhymu
kjuMCQRL17uVkLyrYA/+Ti5N02fzRchprOydiasnhHSdDM3HVZQOqjOvoB5omtuf
D1aldjrgW+TcILlnZxYvaqDPeMvUIZxQPzealRniQ7tmMOAgJfjZXxzuXatqXqw0
zbvQOiY2pSDn7WPxLbGafLAOFWIWhHtkEZMRC2n3WpupiZuC0pacmQeUgVY6Vabs
KU8W
-----END CERTIFICATE-----
subject=OU = Domain Control Validated, CN = *.smtp.sendgrid.net

issuer=C = US, ST = Arizona, L = Scottsdale, O = "GoDaddy.com, Inc.", OU = http://certs.godaddy.com/repository/, CN = Go Daddy Secure Certificate Authority - G2

---
No client certificate CA names sent
Peer signing digest: SHA256
Peer signature type: RSA
Server Temp Key: ECDH, P-256, 256 bits
---
SSL handshake has read 5018 bytes and written 478 bytes
Verification: OK
---
New, TLSv1.2, Cipher is ECDHE-RSA-AES256-GCM-SHA384
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
    Protocol  : TLSv1.2
    Cipher    : ECDHE-RSA-AES256-GCM-SHA384
    Session-ID: 081F291AEFD3E9D5396C2EF1F8579DF4DDE1C11A2CCC94CC2B668203E1D7840C
    Session-ID-ctx: 
    Master-Key: 1A0FC6DC13AC6CBD72A1DABE175792DC0DA6F7F15D196773AC28AD0071AC71A0A9EEF680DEE76098A3E2F2EAE57D9884
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    TLS session ticket lifetime hint: 300 (seconds)
    TLS session ticket:
    0000 - 7b 0a 89 09 92 c5 71 59-83 e9 d4 8e a8 89 cc 20   {.....qY....... 
    0010 - 1f bf 32 5b 69 4b 4b f1-15 b7 f4 45 24 f9 2b 38   ..2[iKK....E$.+8
    0020 - 18 89 17 ee 7d 7a e1 e2-cd 27 b0 95 3e 48 c8 7c   ....}z...'..>H.|
    0030 - 7f fa 5c 79 a0 fd 6b e0-f7 55 f3 f4 b1 52 eb 68   ..\y..k..U...R.h
    0040 - e5 be f7 02 c6 ca fe a9-7e 4f 78 fb cc 73 9c 1b   ........~Ox..s..
    0050 - 78 17 68 96 98 36 4b a0-7f 94 0d cf b8 ca 16 cc   x.h..6K.........
    0060 - 3f 1d ee 42 30 c0 b2 57-26 ed 83 72 41 0a d5 67   ?..B0..W&..rA..g
    0070 - 39 9a 03 a0 b9 99 87 3f-d1 f3 ca 9a 15 46 e1 ac   9......?.....F..
    0080 - 92 dd 4f 75 84 1d cd 01-01 e8 b0 6c 6d b8 41 88   ..Ou.......lm.A.
    0090 - 75 73 36 13 bc e1 71 db-a7 4f 10 be 2b 23 af 61   us6...q..O..+#.a
    00a0 - 7e 62 16 94 35 d7 2d f8-9e c0 db 20 b5 65 dc db   ~b..5.-.... .e..

    Start Time: 1584738869
    Timeout   : 7200 (sec)
    Verify return code: 0 (ok)
    Extended master secret: no
---
250 AUTH=PLAIN LOGIN
EHLO
250-smtp.sendgrid.net
250-8BITMIME
250-PIPELINING
250-SIZE 31457280
250-STARTTLS
250-AUTH PLAIN LOGIN
250 AUTH=PLAIN LOGIN

성공적으로 처리된 것 같네요!

그러면 Digital Ocean 쪽 문제는 아닌 것 같습니다.

@pfaffman 하지만 저는 SendGrid의 모든 사용자 이름과 비밀번호 조합을 사용했습니다…

말씀하신 discourse 커뮤니티 게시물을 모두 참고했습니다.

  1. 사용자 이름
    a. apiKey
    b. apikey
    c. {my_admin_username}
    d. {my_teammember_username}
    e. {my_admin_username}@email.com
    f. {my_teammember_username}@email.com

  2. 포트
    a. 25
    b. 2525
    c. 587

  3. 비밀번호
    a. ""로 감싼 apitoken
    b. “” 없이 apitoken
    c. 실제 사용자 비밀번호

여기서 제가 놓치고 있는 것이 있을까요?

제 추측으로는 새 API 키를 생성할 수 있는지 확인해 보는 것뿐입니다. 네트워크 연결은 정상이고 비밀번호 오류가 발생하고 있으므로, 분명히 비밀번호 관련 문제입니다.

테스트에서 비밀번호를 변경할 때 컨테이너를 삭제하고 다시 시작했나요, 아니면 app.yml 파일에서만 변경했나요?

대부분 app.yml 파일에 있습니다.

다른 사용자로 새로운 API 키를 만들어 보기도 했습니다.
정말 코로나 바이러스처럼 원인이 뭔지 잘 모르겠네요…

컨테이너를 파괴한다는 것은 ./discourse-setup을 실행하는 것을 의미하나요?

app.yml만 수정해서는 아무 일도 일어나지 않습니다. 따라서 해당 파일을 수정한 후 이메일 전송을 다시 시도해 보셨다면, 실제로는 아무 작업도 수행하지 않은 것이며 사용자 이름/비밀번호 조합 중 하나만 테스트한 것입니다.

./launcher destroy app;./launcher start app; discourse-doctor를 실행하면 변경 사항이 적용되고 이메일 테스트를 수행할 수 있다고 생각합니다.

아 네, 호출은 했어요.

./launcher stop app
./launcher rebuild app

./launcher destry app으로 시도해 볼까요?

./launcher rebuild app을 실행하기 전에 ./discousre-doctor'가 새 구성을 반영할지 아시나요?

destroy는 rebuild에 소요되는 시간 없이 컨테이너가 yml 파일의 특정 설정을 가져오도록 허용할 뿐입니다. 추가로 하는 일은 없습니다.

app.yml을 수정한 후 rebuild를 실행했다면, 업데이트된 설정이 사용된 것입니다.

제 생각에는 두 가지 옵션이 있습니다:

  • Sendgrid에서 API 키와 연결된 비밀번호를 초기화하고 app.yml을 업데이트합니다.

또는

  • 다른 방법으로 현재 API 키와 비밀번호를 검증합니다.

@pfaffman @Stephen 오늘 회의가 끝난 뒤 7시 이후에 새 API 키로 destroy 명령을 실행하고 결과를 공유하겠습니다

좋아요, 그게 안 되면 API 키가 제대로 작동하는지 수동으로 확인해 볼 수 있습니다.

안녕하세요 @erickimme @Stephen - SendGrid 설정 및 사용에 대한 해결책을 찾으신 적이 있나요?

안녕하세요! 이 문제에 대한 해결책을 찾았나요?