如何向服务器发送自定义问候

时间:2018-08-24 22:41:41

标签: go smtp

我尝试在Go中创建一个SMTP发件人。这是代码的一部分:

client, err := smtp.NewClient(remote, smtpServer.Host)
if err != nil {
    return err
}
defer client.Close()

auth := SmtpLoginAuth(smtpServer.Username, smtpServer.Password)
authErr := client.Auth(auth)
if authErr != nil {
    fmt.Println("login error", authErr)
    return authErr
}


client.Mail(data.From())
client.Rcpt(data.To())
bodyWriter, err := client.Data()
if err != nil {
    fmt.Println("body error", err)
    return err
}

我的问题是:我想更改服务器的问候消息,此刻我的应用程序从本地主机发送,我想发送服务器的DNS域,但我不知道该怎么办。

我要更改本地主机字符串的示例位置:https://jmp.sh/sugc8Ax

1 个答案:

答案 0 :(得分:1)

只需使用Hello(name)即可设置EHLO / HELO命令中使用的名称。来自the documentation

  

func(c * Client)你好(localName字符串)错误
  Hello将HELO或EHLO作为给定的主机名发送到服务器。仅当客户端需要控制所使用的主机名时,才需要调用此方法。否则,客户端将自动将其自身介绍为“ localhost”。如果调用Hello,则必须先调用它

因此,您所需要做的就是这样:

client, err := smtp.NewClient(remote, smtpServer.Host)
...
client.Hello("foobar.example.com")