Sending Email GUI Client- Fyne Golang Coding Tutorial

 

You need to install the following package:

go get gopkg.in/mail.v2

Let create UI. We need the following widgets

 

Two labels widgets are required

  • App Heading/Title
  • Showing Error & Success Message

 

Four Entry widgets are required

  • Sender email
  • Receiver email
  • Email Subject
  • Message/Email body

Button for sending the email.

  • create a button widget and label it Send email

Sending Email GUI Client – Part #1

Sending Email GUI Client – Part # 2

 

Source Code

 
 
 package main 
 import ( 
     "fmt" 
     "image/color" 
     "fyne.io/fyne/v2" 
     "fyne.io/fyne/v2/app" 
     "fyne.io/fyne/v2/canvas" 
     "fyne.io/fyne/v2/container" 
     "fyne.io/fyne/v2/widget" 
     gomail "gopkg.in/mail.v2" 
 ) 
 func main() { 
     a := app.New() 
     w := a.NewWindow("Email Sender Client") 
     // lets create UI for all fields 
     title := canvas.NewText("Email Sender Client..", color.Black) 
     title.TextSize = 22 // font size is increased 
     title.Alignment = fyne.TextAlignCenter 
     message_status := widget.NewLabel("Enter / fill all fields") 
     sender := widget.NewEntry() 
     sender.SetPlaceHolder("Enter Sender Email") 
     receiver := widget.NewEntry() 
     receiver.SetPlaceHolder("Enter Receiver Email") 
     subject := widget.NewEntry() 
     subject.SetPlaceHolder("Enter Subject") 
     message_body := widget.NewMultiLineEntry() 
     message_body.SetPlaceHolder("Enter Message...") 
     // create our first button 
     send_btn := widget.NewButton("Send Email", func() { 
         message := gomail.NewMessage() 
         // message from/ sender email 
         // remove all static values 
         message.SetHeader("From", sender.Text) 
         message.SetHeader("To", receiver.Text) 
         message.SetHeader("Subject", subject.Text) 
         message.SetBody("text/plain", message_body.Text) 
         // put/type smtp client email host(server),port, username,password 
         // you can use gmail and any other server. 
         dailer := gomail.NewDialer("smtp-relay.sendinblue.com", 587, "[email protected]", "wvVgD2Ut47TjkiOX") 
         err := dailer.DialAndSend(message) 
         if err != nil { 
             fmt.Println(err) 
             // message/ error in message status 
             message_status.Text = err.Error() 
             message_status.Refresh() 
         } else { 
             fmt.Println("Mail Sent successfully...") 
             // message/ error in message status 
             message_status.Text = "Mail Sent successfully..." 
             message_status.Refresh() 
         } 
     }) 
     w.Resize(fyne.NewSize(400, 400)) 
     // send all entries in container 
     w.SetContent(container.NewVBox( 
         title, // title should be centered 
         sender, 
         receiver, 
         subject, 
         message_body, 
         send_btn, 
         message_status, 
     )) 
     w.ShowAndRun() 
 } 
 

 

 

Fyne GoLang GUI Course

Tony BB
 

TonyBB is a Coach , marketer, hypnotist and a founder of RSKVF Production who specializes in providing simple, affordable, and easy to use solutions for Life.

Click Here to Leave a Comment Below 0 comments

Leave a Reply: