Golang : Send email and SMTP configuration example
Golang has a SMTP(Simple Mail Transfer Protocol) package that allows developers to send out email in quick and painless way. This tutorial will cover the basic stuff and will use Gmail as an example to send out email.
NOTE : You will have to replace the configuration below such as password and gmail address with yours to test out the code
package main
import (
"fmt"
"net/smtp"
"strconv"
)
type EmailConfig struct {
Username string
Password string
Host string
Port int
}
func main() {
// authentication configuration
smtpHost := "smtp.****" // change to your SMTP provider address
smtpPort := *** // change to your SMTP provider port number
smtpPass := "yourpassword" // change here
smtpUser := "yourusername@gmail.com" // change here
emailConf := &EmailConfig{smtpUser, smtpPass, smtpHost, smtpPort}
emailauth := smtp.PlainAuth("", emailConf.Username, emailConf.Password, emailConf.Host)
sender := "fromwho@gmail.com" // change here
receivers := []string{
"someone@somedomain.com",
"someone@somedomain.com"
} // change here
message := []byte("Hello from Go SMTP package!") // your message
// send out the email
err := smtp.SendMail(smtpHost+":"+strconv.Itoa(emailConf.Port), //convert port number from int to string
emailauth,
sender,
receivers,
message,
)
if err != nil {
fmt.Println(err)
}
}
If not output or error message, check your target email address inbox to see if the generated email is there or not. Hope this tutorial can be useful to you.
Reference :
See also : Golang : Send email with attachment
By Adam Ng
IF you gain some knowledge or the information here solved your programming problem. Please consider donating to the less fortunate or some charities that you like. Apart from donation, planting trees, volunteering or reducing your carbon footprint will be great too.
Advertisement
Tutorials
+6.3k Nginx : How to block user agent ?
+32.2k Golang : Smarter Error Handling with strings.Contains()
+9.6k RPM : error: db3 error(-30974) from dbenv->failchk: DB_RUNRECOVERY: Fatal error, run database recovery
+13.8k Golang : Save(pipe) HTTP response into a file
+5.4k Golang : Selection sort example
+4.6k Unix/Linux/MacOSx : How to remove an environment variable ?
+11.9k Golang : Convert int(year) to time.Time type
+8.6k Golang : Accessing content anonymously with Tor
+25.8k Golang : How to check if a connection to database is still alive ?
+13.8k Golang : Normalize unicode strings for comparison purpose
+7.8k Golang : Set or add headers for many or different handlers
+4.6k Javascript : How to loop over and parse JSON data?