Maison >développement back-end >Golang >Erreur lors de l'envoi d'un e-mail wsarecv : la connexion existante a été fermée de force par l'hôte distant

Erreur lors de l'envoi d'un e-mail wsarecv : la connexion existante a été fermée de force par l'hôte distant

PHPz
PHPzavant
2024-02-12 15:57:05927parcourir

发送电子邮件时出现错误 wsarecv:现有连接被远程主机强行关闭

Contenu de la question

J'ai le programme go suivant qui envoie des e-mails. Les informations d'identification sont correctes. Je les ai même testés avec curl et j'ai constaté que la connexion est réussie. Notez que tls n'est pas obligatoire.

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!")
}

Pouvez-vous me dire pourquoi l'erreur suivante se produit ?

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

J'ai essayé d'utiliser curl et je l'ai vu connecté au serveur de messagerie mais la connexion était fermée.

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

J'attends l'envoi d'un email.

Solution

Merci beaucoup pour votre réponse. Je suis passé à la mise en œuvre depuis https://www.php.cn/link/7104a226fe65be03fecf10f5bceff8a6 et fonctionne bien. Je ne comprends toujours pas ce que j'ai fait de mal. Je me suis trompé à propos de TLS - il est utilisé et la méthode go en tient compte.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer