I am not going describe anything about elasticmail itself. You can look at the elasticmails site for details about it.
I am writing this post to show you how to use it with your GoLang application.
First Create a template in the elastic mail panel. I Don't know why but when I tried to send an email as complete HTML string. It was returning the 404 error.
But when using small pieces of HTML tags like just passing
<h2> Hello </h2>
So instead of struggling with it, I found another way,
- Create Custome template on the elasticmails site panel
- Use the template for mail with passing necessary details[fields] during the API call
Create A Template with placeholders
Elastic Mail Template Designer |
Highlighted elements from the left side
- Templets menu
- Templet Name / Id
- Example Placeholders
GoLang Code
function to send the email through ElasticMail with the template shown in the image with the firstname and lastnamefunc ElasticMailSend(){ mailClient := http.Client{ Timeout: time.Minute * 1, } myurl := url.URL{} myurl.Scheme = "https" myurl.Host = "api.elasticemail.com" myurl.Path = "v2/email/send" q := myurl.Query() q.Add("apikey", Elasti-Mail-Key) q.Add("to", To-Email-Address) q.Add("template", "Welcome_New_User") q.Add("subject", subject) q.Add("bodyHtml", "html") q.Add("charset", "UTF-8") q.Add("from", from)
// merge_{variablename} will replace placeholders value {variablename} in the
// template
// for example,
// merge_firstname will replace {firstname} in the template as Manish
q.Add( "merge_firstname","Manish") q.Add( "merge_lastname","Champaneri") q.Add("fromName", From-Name) myurl.RawQuery = q.Encode() req, err := http.NewRequest("POST", myurl.String(), strings.NewReader(string("a"))) if err != nil { return } resp, errDO := mailClient.Do(req) if errDO != nil { return } resp.Body.Close() }
Mail I Receive
Final mail delivered by elasticmail |
Hope You will find it use full
Comments
Post a Comment