Ich habe das folgende Go-Programm, das E-Mails versendet. Die Anmeldedaten sind korrekt. Ich habe sie sogar mit Curl getestet und festgestellt, dass die Verbindung erfolgreich ist. Beachten Sie, dass TLS nicht erforderlich ist.
package main import ( "fmt" "log" "net/smtp" ) const ( username = "[email protected]" passwd = "password1111" host = "mail.privateemail.com" port = "465" ) func main() { from := "[email protected]" to := []string{ "[email protected]", } msg := []byte("from: [email protected]\r\n" + "to: [email protected]" + "subject: golang testing mail\r\n" + "email body: welcome to go!\r\n") auth := smtp.plainauth("", username, passwd, host) url := fmt.sprintf(host + ":" + port) fmt.printf("url=[%s]\n", url) err := smtp.sendmail(url, auth, from, to, msg) if err != nil { log.fatal(err) } fmt.println("mail sent successfully!") }
Können Sie mir sagen, warum der folgende Fehler auftritt?
read tcp 192.168.0.2:61740->198.54.122.135:465: wsarecv: an existing connection was forcibly closed by the remote host. exit status 1
Ich habe versucht, Curl zu verwenden und habe festgestellt, dass es mit dem Mailserver verbunden ist, aber die Verbindung wurde geschlossen.
c:\GoProjects\goemail λ curl -v --url "smtp://mail.privateemail.com:465" --user "[email protected]:password1111" --mail-from "[email protected]" --mail-rcpt "[email protected]" --upload-file sample.txt % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0* Trying 198.54.122.135:465... * Connected to mail.privateemail.com (198.54.122.135) port 465 (#0) 0 0 0 0 0 0 0 0 --:--:-- 0:00:09 --:--:-- 0* Recv failure: Connection was reset 0 0 0 0 0 0 0 0 --:--:-- 0:00:10 --:--:-- 0 * Closing connection 0 curl: (56) Recv failure: Connection was reset
Ich warte auf den Versand einer E-Mail.
Vielen Dank für Ihre Antwort. Ich bin von https://www.php.cn/link/7104a226fe65be03fecf10f5bceff8a6 zur Implementierung gewechselt und funktioniert gut. Ich verstehe immer noch nicht, was ich falsch gemacht habe. Ich habe mich bei TLS geirrt – es wird verwendet und die Go-Methode berücksichtigt es.
Das obige ist der detaillierte Inhalt vonFehler beim Senden der E-Mail wsarecv: Die bestehende Verbindung wurde vom Remote-Host zwangsweise geschlossen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!