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 (

 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{
 } // 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

 if err != nil {

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.