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 destroy app

你知道在运行 ./launcher rebuild app 之前,./discourse-doctor 会有新的配置吗?

destroy 只是允许容器从 YAML 文件中读取某些设置,而无需执行耗时较长的 rebuild 操作。它不会执行任何额外操作。

如果您在编辑了 app.yml 之后执行了 rebuild,那么它将使用更新后的设置。

在我看来,您有两种选择:

  • 在 SendGrid 上重置与 API 密钥关联的密码,并更新您的 app.yml

  • 通过其他方式验证当前的 API 密钥和密码。

@pfaffman @Stephen 我将在今天晚上 7 点会议结束后使用新的 API 密钥执行 destroy 命令,并分享结果。

好的,如果那不起作用,我们可以手动验证 API 密钥是否有效。

@erickimme @Stephen,你们找到设置和使用 SendGrid 的解决方案了吗?

嘿!你找到解决办法了吗?