Fiber

Use the Posthawk Go SDK with Fiber.

SDKapp.Post("/send", ...)

Send emails from a Fiber handler.

Example

go
package main

import (
    "os"
    "github.com/gofiber/fiber/v2"
    posthawk "github.com/endibuka/posthawk-go"
)

var client = posthawk.New(os.Getenv("POSTHAWK_API_KEY"))

func main() {
    app := fiber.New()
    app.Post("/send", func(c *fiber.Ctx) error {
        var req struct {
            To      string `json:"to"`
            Subject string `json:"subject"`
            HTML    string `json:"html"`
        }
        c.BodyParser(&req)
        result, err := client.Emails.Send(c.Context(), &posthawk.SendEmailRequest{
            From: "hello@yourdomain.com", To: []string{req.To},
            Subject: req.Subject, HTML: req.HTML,
        })
        if err != nil {
            return c.Status(500).JSON(fiber.Map{"error": err.Error()})
        }
        return c.JSON(fiber.Map{"job_id": result.JobID})
    })
    app.Listen(":3000")
}