Cara Mengirim Email dengan Mailgun Menggunakan Golang

Pada tutorial kali ini, kita akan menggunakan bahasa pemrograman Go (golang) untuk mengirimkan email lewat platform Mailgun. Mailgun sendiri adalah layanan pengiriman email dan kini juga notifikasi realtime secara gratis dengan batasan menarik, seperti:

  • 10,000 emails / month
  • 100 validations / month
  • 5 days of log retention
  • 24/7 ticket support

Mailgun sendiri menyediakan SDK yang cukup lengkap. Beberapa bahasa pemrograman yang didukung antara lain: python, ruby, perl, java, kotlin, Go/lang, C#, PHP, nodeJS, luvit dan cURL. Nah, untuk Golang sendiri silakan ikuti sourcecode berikut:

package main

import (
    "context"
    "fmt"
    "log"
    "time"

    "github.com/mailgun/mailgun-go/v4"
)

// Your available domain names can be found here:
// (https://app.mailgun.com/app/domains)
var yourDomain string = "your-domain-name" // e.g. mg.yourcompany.com

// You can find the Private API Key in your Account Menu, under "Settings":
// (https://app.mailgun.com/app/account/security)
var privateAPIKey string = "your-private-key"

kemudian selanjutnya, definisikan class Mailgun baru:

func main() {
    // Create an instance of the Mailgun Client
    mg := mailgun.NewMailgun(yourDomain, privateAPIKey)
}

tambahkan definisi siapa pengirim mailgun:

sender := "sender@example.com"
    subject := "Fancy subject!"
    body := "Hello from Mailgun Go!"
    recipient := "recipient@example.com"

dan kirim emailnya dengan contoh berikut:

// The message object allows you to add attachments and Bcc recipients
    message := mg.NewMessage(sender, subject, body, recipient)

    ctx, cancel := context.WithTimeout(context.Background(), time.Second*10)
    defer cancel()

    // Send the message with a 10 second timeout
    resp, id, err := mg.Send(ctx, message)

    if err != nil {
        log.Fatal(err)
    }

    fmt.Printf("ID: %s Resp: %s\n", id, resp)

jadi lebih lanjut silakan pelajari di repositori Mailgun di Github: https://github.com/mailgun/mailgun-go

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: