HOW TO
USING
GOLANG IN
get to know me better at: https://fauzancodes.idMastering Email Sending in Golang
If you call yourself a golang backend developer and
you haven't mastered the art of sending emails in
Golang, are you even a developer?
Seriously, we're in 2025—handling emails is the bread
and butter of backend engineering. Whether you're
sending critical password resets, user notifications, or
marketing campaigns, email is the lifeline between
your application and its users.
get to know me better at: https://fauzancodes.idWhy Should You Care?
Because your users care!
Emails are one of the most universal and direct
communication tools. And let’s be real—nobody wants
to rely on a bloated third-party service for something
you can elegantly craft yourself with a few lines of Go.
The control, the efficiency, and the bragging rights of
building your email-sending functionality are
unmatched.
get to know me better at: https://fauzancodes.idIntroduce: github.com/go-gomail/gomail _
It’s lightweight, intuitive, and perfect for anyone who
believes in getting the job done without unnecessary
overhead. Forget libraries that complicate the process
with excessive configurations or unreadable APIs. With
gomail, you get exactly what you need: a robust,
straightforward solution for sending emails in Golang.
Why is this the right choice?
- Simplicity at its best:
Say goodbye to hours wasted navigating complex
setups.
- Flexibility:
Need attachments? Custom headers? HTML
templates? Done, done, and done.
- Performance:
Handle email sending without sacrificing your
application’s speed or scalability.
get to know me better at: https://fauzancodes.idReady to Dive Into Code?
The process is as simple:
1. Setup your configuration:
Define your SMTP server details and authentication.
2. Prepare the html template:
Prepare an html file to be your email template.
2. Write the code:
Create a function to send an email using gomail.
3. Use the function:
Call it wherever your application needs to send an
email.
The code example you'll see here is built to be flexible
and production-ready, designed to integrate
seamlessly into any project. With this, you can handle
everything from simple plaintext emails to complex
HTML messages with attachments.
get to know me better at: https://fauzancodes.id1. Setup Your SMTP Configuration
Here we will use Gmail for SMTP. You need the
following:
1. SMTP Host. For Gmail is smtp.gmail.com
2. SMTP Username. For Gmail is your email
3. SMTP Password. For Gmail is the app password of
your gmail account
4. SMTP Port. For Gmail is 587
For other SMTP providers, of course the four
configurations above are different, you can read it in
the documentation they provide.
get to know me better at: https://fauzancodes.idHow To Get Your Gmail App Password?
1. Click "Manage your google account” in your browser
2. Click on the "Security" menu
3. Click "2-Step Verification", scroll down
4. Click "App passwords’, Enter "App name”
5. Click "Create".
Google Account
Recent security activity
How you sign in to Google
get to know me better at: https://fauzancodes.idoa
See
app > config > #60 config.go
Pree sts
cag
ry
Sree cc a
>
DoT eaaae
Se ae urd
Eee urd
ee eer urd
Sed
}
func LoadConfig() (config *Config) {
Dre eG a Te EC
Se see Ca) eee Dest
Bee Sua) eee eC eee
Be een Cc ar a TT PEGE
Cea etet se
Sea See
SC TCL
smtpPassword: smtpPassword,
Sea Re
get to know me better at: https://fauzancodes.idSR eu und
pee ea SSMS eae nes
Pty
Piccrnd
Pee
iar
eer aes
eee
aERTcpts)
Epes
ieee
oa
Penn Ee
width=device-width, initial-scal
Pores Urias
Pose neem ccs
Steere ert)
copy; 2024
irene
pact iget to know me better at: https://fauzancodes.id
102
cre]
Seer LC CLE eT3. Write The Code To Send Email
Pe Be eed tb)
eae)
eM
itm1/ template’
on
ert
by een Meare aie eed cerca eee ee
Satan eee cr
Per ere ng » : : i
. CLONE
a Loadconfig
= aes
5 Loadconfig
& Perec
See eae
eae
cee COR sa
area )
get to know me better at: https://fauzancodes.idco Xe
app > pkg > smtp > =60 smtp.go >
lla sea
ACU eG ae rae
!= nil
aoe us ee eee
-PrintIn("Success to read template file")
aera crear) Cy Brey ( »
aura
Sus Uae eC CLC CUE Crs OD)
Ass Gre OM CU cea eC)
get to know me better at: https://fauzancodes.idSC YT md
Eee pee eae Seed
Se ae Ce a eee ce eRe ead eee ra
get est:
SES area Cig
ec Sean stC is Sem saeD)
Coeur et
Pree CeCe ta Che)
PCa are me
cess Garret este UEC) Tee Op)
oer
eC
log.PrintIn("success to fill in template")
}
PLS e mt
Cree ne rad he ae eee OD)
eee aca eer)
cE UC eu g
DEreeue vast @ri)
}
rye
Cee CC ee eC Coo)
aE er
Poa Ee Sey UCT Cec eae emg
log.Print1n("Failed to send email. Error: ", err.Error())
return
ene
log.PrintIn("Success to send email. Template: "thtmlTemplate+".html. Target
[ESOP COM ee lets Ee)
}
+
Ed
‘get to know me better at: https://fauzancodes.Ce’
60 main.go >
Poca u)
Tea
Soe Ree aie sel Pd eee el eS UE Te Te)
eT Te aca ee Eee
)
type Emailverfication struct {
Name ee
Ne tstore Cu Meaty
Patio es
7
func main() {
a ce Ce CMEee
PoebaEEe eMC str yetng
Name: rer a
Pee ss ee Cee ce Senne Ya
VerificationUrl: “https: //sales-demo-api.vercel.app/auth/email-verification/”,
t
attachmentpath := []string{
Serericy] stacy) se Oe a
“assets/picture/pic_2. jpg",
Sreeiey, Seat YS a
My
cre
ee ear ee tet st LM eee
Verification", attachmentPath, fill)
get to know me better at: https://fauzancodes.idResult
Email Verification D nse
rmfauzen murtacho@gmalicom
SACS Coy
Hello, Mr. Black!
Thank you for signing up, Please click the button below fo vey your eral
address:
Hf you did not create an account, please ignore this eral
ot work, please click or copy and paste the
Inthe button above o
following Ink into your browser:
i
®
get to know me better at: https://fauzancodes.id
Co Revty) (or Forward) (@)Conclusion
Mastering email sending in Golang with
github.com/go-gomail/gomail isn’t just a skill—it’s a
necessity for any golang backend developer aiming
for excellence. Emails are a fundamental part of
application-user communication, and being able to
implement this functionality efficiently sets you apart.
With gomail, the process is streamlined: configure,
code, and execute. Whether you're sending simple
notifications or complex HTML emails with
attachments, this package has you covered.
Have thoughts, questions, or experiences to share
about email handling in Golang? Drop your comments
below or send me a message—let’s discuss and grow
together as developers!
get to know me better at: https://fauzancodes.id