I am sending e-mails over smtp in golang, which works perfectly fine. To set the sender of an e-mail I use the Client.Mail funtion:
func (c *Client) Mail(from string) error
When the recipient gets the e-mail he sees the sender as plaintext e-mail address: [email protected]
I want the sender to be displayed like: Sandy Sender <[email protected]>
.
Is this possible? I tried setting the sender to Sandy Sender <[email protected]>
or only Sandy Sender
but none of them work. I get the error 501 5.1.7 Invalid address
You need to set the From
field of your mail to Sandy Sender <[email protected]>
:
...
From: Sandy Sender <[email protected]>
To: [email protected]
Subject: Hello!
This is the body of the message.
And use the address only ([email protected]
) in Client.Mail
.
Alternatively, you can use my package Gomail:
package main
import (
"gopkg.in/gomail.v2"
)
func main() {
m := gomail.NewMessage()
m.SetAddressHeader("From", "[email protected]", "Sandy Sender")
m.SetAddressHeader("To", "[email protected]")
m.SetHeader("Subject", "Hello!")
m.SetBody("text/plain", "This is the body of the message.")
d := gomail.NewPlainDialer("smtp.example.com", 587, "user", "123456")
if err := d.DialAndSend(m); err != nil {
panic(err)
}
}