Email Extract App – Fyne Golang GUI tutorial 72

Want to know Email of any organization?
This is the best tool for you.
Let suppose you want to figure out email of google or fiver or amazon.
You don't need to search the whole internet.
Just enter the domain of the company and the result will be served to you in seconds.

[sourcecode lang="go" autolinks="false" classname="myclass" collapse="false" firstline="1" gutter="true" highlight="1-3,6,9" htmlscript="false" light="false" padlinenumbers="false" smarttabs="true" tabsize="4" toolbar="false" title="Source Code main.go"] package main

import (
"encoding/json"
"fmt"
"io/ioutil"
"net/http"

"fyne.io/fyne/v2"
"fyne.io/fyne/v2/app"
"fyne.io/fyne/v2/container"
"fyne.io/fyne/v2/widget"
)

func main() {
a := app.New()
w := a.NewWindow("Find Email of organization employee...")
w.Resize(fyne.NewSize(600, 400))
title1 := widget.NewLabel("Email Finder Verification App")
title1.Alignment = fyne.TextAlignCenter
title1.TextStyle = fyne.TextStyle{Bold: true}
// Get url for user
long_url := widget.NewEntry()
long_url.SetPlaceHolder("Enter URL here...")
long_url.Text = "intercom.io"
result_data := widget.NewMultiLineEntry()
result_data.MultiLine = true
result_data.Resize(fyne.NewSize(300, 400))
result_data.Move(fyne.NewPos(0, 0))
result_data.SetPlaceHolder("First name & Email will displayed here...")
result_container := container.NewWithoutLayout(result_data)
result_container.Resize(fyne.NewSize(300, 400))
email_place_holder := container.NewVBox(widget.NewLabel("List of Emails:"))
email_place_holder2 := container.NewHScroll(email_place_holder)
btn := widget.NewButton("Find", func() {
API_KEY := "d7888147f3ec5a63f1f6831f7357b229b90448c5"
// Raw URL
// https://api.hunter.io/v2/domain-search?domain=intercom.io&api_key=API_KEY
// url of api
URL := fmt.Sprintf("https://api.hunter.io/v2/domain-search?domain=%s&api_key=%s", long_url.Text, API_KEY)
//URL := "http://127.0.0.1:3000/email"
//URL := "http://127.0.0.1:3000/email2"
// http response
resp, _ := http.Get(URL)
defer resp.Body.Close()
// read the response body
body, _ := ioutil.ReadAll(resp.Body)
// parse json data
emailFinder, _ := UnmarshalEmailFinder(body)
// add the suffix received to main url
fmt.Print(len(emailFinder.Data.Emails))
var emailSlice string
for i := 0; i < len(emailFinder.Data.Emails); i++ {
var v *string
if emailFinder.Data.Emails[i].FirstName != nil {
v = emailFinder.Data.Emails[i].FirstName
fmt.Println(string(*v))
f := fmt.Sprintf("\n firstname:%s\n email %d: %s\n", *v, i+1, emailFinder.Data.Emails[i].Value)
email_ := fmt.Sprintf("%d# %s\nemail : %s", i+1, *v, emailFinder.Data.Emails[i].Value)
email_place_holder.Add(widget.NewLabel(email_))
emailSlice += f
}
}
result_data.Text = "Organization Name: " + emailFinder.Data.Organization + "\n" + emailSlice
result_data.Refresh()
})
c := container.NewVBox(title1, long_url, btn, result_container)
split1 := container.NewHSplit(c, email_place_holder2)
w.SetContent(split1)
w.ShowAndRun()
}

// This file was generated from JSON Schema using quicktype, do not modify it directly.
// To parse and unparse this JSON data, add this code to your project and do:
//
// emailFinder, err := UnmarshalEmailFinder(bytes)
// bytes, err = emailFinder.Marshal()
func UnmarshalEmailFinder(data []byte) (EmailFinder, error) {
var r EmailFinder
err := json.Unmarshal(data, &r)
return r, err
}
func (r *EmailFinder) Marshal() ([]byte, error) {
return json.Marshal(r)
}

type EmailFinder struct {
Data Data `json:"data"`
Meta Meta `json:"meta"`
}
type Data struct {
Domain string `json:"domain"`
Disposable bool `json:"disposable"`
Webmail bool `json:"webmail"`
AcceptAll bool `json:"accept_all"`
Pattern string `json:"pattern"`
Organization string `json:"organization"`
Country interface{} `json:"country"`
State interface{} `json:"state"`
Emails []Email `json:"emails"`
}
type Email struct {
Value string `json:"value"`
Type Type `json:"type"`
Confidence int64 `json:"confidence"`
Sources []Source `json:"sources"`
FirstName *string `json:"first_name"`
LastName *string `json:"last_name"`
Position *string `json:"position"`
Seniority *string `json:"seniority"`
Department *string `json:"department"`
Linkedin interface{} `json:"linkedin"`
Twitter *string `json:"twitter"`
PhoneNumber *string `json:"phone_number"`
Verification Verification `json:"verification"`
}
type Source struct {
Domain string `json:"domain"`
URI string `json:"uri"`
ExtractedOn string `json:"extracted_on"`
LastSeenOn string `json:"last_seen_on"`
StillOnPage bool `json:"still_on_page"`
}
type Verification struct {
Date *string `json:"date"`
Status *string `json:"status"`
}
type Meta struct {
Results int64 `json:"results"`
Limit int64 `json:"limit"`
Offset int64 `json:"offset"`
Params Params `json:"params"`
}
type Params struct {
Domain string `json:"domain"`
Company interface{} `json:"company"`
Type interface{} `json:"type"`
Seniority interface{} `json:"seniority"`
Department interface{} `json:"department"`
}
type Type string

const (
Generic Type = "generic"
Personal Type = "personal"
)

[/sourcecode] [easy_media_download url="https://blogvali.com/wp-content/uploads/2022/11/Email-Extract-App-–-Fyne-Golang-GUI-tutorial-72.zip" text="Download Code" color="red_darker"]

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: