Ich verwende Digital Ocean (Hosting), SendGrid (SMTP) und Netlify (Domain, DNS), um mein offenes Forum für meinen Blog einzurichten.
Ich habe den Teil mit der Domain und DNS konfiguriert und konnte die Registrierungsseite aufrufen.
Aber die E-Mail kommt beim Entwickler nicht an.
Ich habe folgende Konfigurationen in nano containers/app.yml ausprobiert:
DISCOURSE_HOSTNAME: ‘discourse.myblog.com ’
DISCOURSE_DEVELOPER_EMAILS: ‘adminEmail@gmail.com’
DISCOURSE_SMTP_ADDRESS: smtp.sendgrid.net
DISCOURSE_SMTP_PORT: 2525
DISCOURSE_SMTP_USER_NAME: {myusername}
DISCOURSE_SMTP_PASSWORD: XX.xxxx.xxxxxxxxx
DISCOURSE_SMTP_ENABLE_START_TLS: true # (optional, standardmäßig true)
DISCOURSE_SMTP_ADDRESS: smtp.sendgrid.net
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_USER_NAME: {myusername}
DISCOURSE_SMTP_PASSWORD: XX.xxxx.xxxxxxxxx
DISCOURSE_SMTP_ENABLE_START_TLS: true # (optional, standardmäßig true)
DISCOURSE_SMTP_ADDRESS: smtp.sendgrid.net
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_USER_NAME: apiKey
DISCOURSE_SMTP_PASSWORD: XX.xxxx.xxxxxxxxx
DISCOURSE_SMTP_ENABLE_START_TLS: true # (optional, standardmäßig true)
DISCOURSE_SMTP_ADDRESS: smtp.sendgrid.net
DISCOURSE_SMTP_PORT: 25
DISCOURSE_SMTP_USER_NAME: {myusername}
DISCOURSE_SMTP_PASSWORD: XX.xxxx.xxxxxxxxx
DISCOURSE_SMTP_ENABLE_START_TLS: false # (optional, standardmäßig true)
DISCOURSE_SMTP_ADDRESS: smtp.sendgrid.net
DISCOURSE_SMTP_PORT: 25
DISCOURSE_SMTP_USER_NAME: {myusername}
DISCOURSE_SMTP_PASSWORD: XX.xxxx.xxxxxxxxx
DISCOURSE_SMTP_ENABLE_START_TLS: false # (optional, standardmäßig true)
DISCOURSE_SMTP_OPENSSL_VERIFY_MODE: none
Wenn ich ./discourse-doctor ausführe und das Senden einer E-Mail teste, erhalte ich:
535 Authentication failed: Bad username / password
Stephen
(Stephen)
20. März 2020 um 17:49
2
Es sieht so aus, als würdest du einen API-Schlüssel als Benutzernamen für SendGrid verwenden?
Ich habe sowohl den API-Schlüssel als auch meinen Benutzernamen (admin und teammate) ausprobiert, aber es funktioniert immer noch nicht.
Stephen
(Stephen)
20. März 2020 um 17:57
4
Soweit ich weiß, musst du für die Nutzung eines API-Schlüssels den Benutzernamen ‘apikey’ mit dem entsprechenden Passwort verwenden. Ich kann nichts dazu finden, ob die Groß- und Kleinschreibung relevant ist, aber sicher ist sicher.
Vielleicht solltest du den DigitalOcean-Support kontaktieren. Es ist bekannt, dass dieser ausgehende SMTP-Verbindungen zu Drittanbieterdiensten auf neuen Konten blockiert. Kannst du von diesem Host aus eine Telnet-Verbindung zu diesem Port herstellen?
pfaffman
(Jay Pfaffman)
20. März 2020 um 17:59
5
Wenn nicht, verwende Port 2525. Du musst dann nicht auf ein Ticket warten. Ich verwende standardmäßig einfach Port 2525. Es gibt keinen Nachteil.
Ich habe es auch mit 2525 versucht…
Ich habe es auch gerade mit apikey versucht, aber es funktioniert nicht…
Ja, ich habe versucht, mich gemäß diesem Tutorial mit telnet zu verbinden (How to send an Email with SMTP | SendGrid Docs | Twilio ), und konnte erfolgreich eine Verbindung herstellen.
@Stephen , gute Idee, dass ich mich wegen der Blockierung von ausgehendem SMTP an DigitalOcean wende.
pfaffman
(Jay Pfaffman)
20. März 2020 um 18:32
9
Das ist nicht notwendig, denn:
Werden Testnachrichten in Ihren SendGrid-Protokollen angezeigt?
Um herauszufinden, wie das geht, müssten Sie die Leute bei SendGrid fragen.
Okay, ich hole mir das Log!
Ich vermute, dass ein Problem mit dem Status „Filtered
Stephen
(Stephen)
20. März 2020 um 19:05
12
Das Problem liegt nicht an Port 25 Ihres Servers (also eingehender Verkehr), sondern am ausgehenden Verkehr von Ihrem Server zu einem Remote-Host auf Port 587.
DigitalOcean blockiert dies bekanntermaßen, da manche Benutzer neue Konten erstellen, um Böses zu tun.
Ja, ich habe ein Support-Ticket erstellt und warte auf deren Antwort.
Glaubst du, dass das mit SendGrid zu tun hat?
@Stephen
Stephen
(Stephen)
20. März 2020 um 19:53
14
Fast sicher nicht. Wir sehen bei neuen Konten häufig Probleme mit ausgehenden Ports bei neuen Installationen; das liegt nicht speziell an Sendgrid.
Wenn Sie einen Linux- oder Mac-Arbeitsplatz haben, können Sie SMTP über Port 587 zu Sendgrid unabhängig testen, indem Sie beispielsweise Folgendes ausführen:
openssl s_client -starttls smtp -connect smtp.sendgrid.com:587
Wenn es von Ihrem VPS aus fehlschlägt, aber von überall anders funktioniert, liegt das Problem am ausgehenden Verkehr von DO.
Ich habe es gerade von meinem Mac getestet, und die Verbindung wurde erfolgreich hergestellt.
Ich habe diesen Code auf meinem Mac (Catalina) ausgeführt
Ich habe openssl s_client -starttls smtp -connect smtp.sendgrid.net:587 aufgerufen
und folgende Ausgabe erhalten
CONNECTED(00000006)
depth=3 C = US, O = "The Go Daddy Group, Inc.", OU = Go Daddy Class 2 Certification Authority
verify return:1
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
Server Temp Key: ECDH, P-256, 256 bits
---
SSL handshake has read 5002 bytes and written 357 bytes
---
New, TLSv1/SSLv3, 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: F315CBBB90B16A8F85D95F0CD18C07135A128B5FE6CE53D50C7CF81310B28732
Session-ID-ctx:
Master-Key: E4C09CCC8AECB9C596D608B79E9A5360B88E2C31EB98C770E96A5037177F7F5D92B9CFA449B8ECA7AEA5D4CB873601D4
TLS session ticket lifetime hint: 300 (seconds)
TLS session ticket:
0000 - f7 61 88 44 b6 0d 7c ce-0c 35 b3 ba 33 03 ce 33 .a.D..|..5..3..3
0010 - 95 99 62 e9 f9 ea 5e e6-00 f8 09 66 47 bd 28 cf ..b...^....fG.(.
0020 - 51 64 c5 76 3a ac b2 e2-ff 2a be 29 63 8c a8 d2 Qd.v:....*.)c...
0030 - 76 2e ba 08 32 74 4a 4b-24 c8 69 ef 71 8e da e6 v...2tJK$.i.q...
0040 - e3 dd c3 a8 19 84 02 c9-9e e7 7a 7a b8 b7 78 f3 ..........zz..x.
0050 - 02 8c e6 ff 85 0e f5 4d-f3 5a 49 b1 22 40 12 ee .......M.ZI."@..
0060 - 7d d5 8c f4 d9 50 57 0a-c2 82 06 52 9e 64 89 fd }....PW....R.d..
0070 - 21 7b e4 f0 f3 e8 2c 61-09 a7 99 1f c8 7e c5 1b !{....,a.....~..
0080 - 23 fc 11 bc a7 8d 21 d6-05 6f 86 66 5b e9 2e 87 #.....!..o.f[...
0090 - d0 98 8f b2 2b 7d 18 90-50 62 67 8f 77 8b c2 37 ....+}..Pbg.w..7
Start Time: 1584738375
Timeout : 7200 (sec)
Verify return code: 0 (ok)
---
250 AUTH=PLAIN LOGIN
Stephen
(Stephen)
20. März 2020 um 21:08
16
Richtig, und wenn Sie EHLO eingeben und die Eingabetaste drücken, sollte folgende Antwort erscheinen:
250-smtp.sendgrid.net
250-8BITMIME
250-PIPELINING
250-SIZE 31457280
250-STARTTLS
250-AUTH PLAIN LOGIN
250 AUTH=PLAIN LOGIN
Das beweist, dass Sie eine Verbindung zu SendGrid herstellen können. Wenn dies von der DO-Droplet aus fehlschlägt, haben Sie Ihre Antwort.
Ich glaube, ich habe es verbunden? Also denke ich, wir sind mit SendGrid fit.
EHLO
250-smtp.sendgrid.net
250-8BITMIME
250-PIPELINING
250-SIZE 31457280
250-STARTTLS
250-AUTH PLAIN LOGIN
250 AUTH=PLAIN LOGIN
@Stephen , wir warten immer noch auf eine Rückmeldung von DigitalOcean, wie wir den ausgehenden E-Mail-Verkehr wieder freigeben können.
Stephen
(Stephen)
20. März 2020 um 21:12
19
Ok, wenn du das also über SSH von einem Droplet wiederholst, wird die Verbindung hergestellt?
Ich habe es gerade von einem meiner Droplets bei DO geprüft, und es verhält sich genauso, da Port 587 offen ist.
Falls meine frühere Annahme richtig war, sollte die Verbindung fehlschlagen. Wenn sie fehlschlägt, wartest du auf das Richtige – es ist besser, es sicher zu wissen, als nur zu warten und dann festzustellen, dass das Problem woanders lag!
pfaffman
(Jay Pfaffman)
20. März 2020 um 21:16
20
Sie haben bereits mindestens zwei verschiedene Methoden demonstriert, bei denen ausgehende E-Mails von Digital Ocean nicht blockiert werden.
Ich wage die Vermutung, dass Sie den falschen Benutzernamen und/oder das falsche Passwort verwenden.