All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- BREAKING: Move all types into
mtypespackage for better organization and type safety - BREAKING: Rename
NewMailgun()toNew()for consistency - BREAKING: Remove deprecated methods and fields from v4
- Module path updated to
/v5 - Improved error handling and API response types
- See v5.0.0 release notes and README migration guide for full details
- Add Analytics API support
- Add InboxReady API support
- Add IP Warmups API support
- Add Subaccounts API support
- Add API keys management support
- Add more comprehensive domain management features
- Last v4 release before v5.0.0 major version bump
- See v4.23.0 release notes
- Expose mx-host and additional fields in events.DeliveryStatus
- Added
web_schemeas a primary domain attribute
- Added GHA workflow to mailgun-go
- Replace gorilla/mux with go-chi/chi/v5
- Templates can set default From, no longer required when sending templated mails
- Added missing Total field in temporary failure stats
- Allow setting preferred reply method to mailing lists
- Added Send Time Optimization (STO) parameter support
- Add Event.ClientInfo.Bot field
- Add support for
web_schemein CreateDomain - Add support for batch endpoints for adding bounces and complaints
- Change inline image example
- Fix setting template in examples
- Added special case for Host headers
- Added CaptureCurlOutput for debugging
- Added AddOverrideHeader()
- README improvement for EU domains
- Changed URL validation
- Validate domain passed to Send()
- Add a struct and a function to parse route forward hook payloads.
- Add missing VerifyAndReturnDomain method to the interface.
- Added result to v4 validation response
- Change response for VerifyDomain method from (string, error) to (DomainResponse, error)
MockServernow locks internal resources for thread safety.
MockServeris now an interface,NewMockServer()now returns the interface.
- Removed dependency on github.com/go-chi/chi
- Added
SetTrackingOptions()to suppport htmlonly option
- Paging through results now clears the previous result before new fetch
- Added test for multiple attachments
- Added UpdateDomainTrackingWebPrefix()
- Add the
Riskto the EmailVerification response attributes
- Added UpdateDomainDkimSelector()
- Remove mustache from our list of supported template engines
- Replaced easyjson with json-iterator when marshalling events
- Modified the mailgun.Event interface by removing the Marshaller interface from easyjson.
- Fixed failure while testing webhook via mailgun web console
- Added ListEventsWithDomain()
- Added Storage to Accepted, Delivered and Failed events
- UpdateTemplateVersion() now including the template html in the payload request
- Added DeleteBounceList method
- Nows sets initial tag when creating a new template
- Added EmailVerification.reason is now a []string (Fixes #217)
- Added SetTemplateVersion and SetTemplateRenderText methods to Message
- Changed
UserVariablestype frommap[string]interface{}tointerface{}to handle truncated user-variable messages in events.
- Add support for setting AMP content in messages
- Calls to get stats now use epoch as the time format
- Added
AddTemplateVariable()to make adding variables to templates less confusing and error prone.
- Added
VerifyWebhookSignature()to mailgun interface
- APIBaseEU and APIBaseUS to help customers change regions
- Documented how to change regions in the README
- Fix the JSON response for
GetMember() - Typo in format string in max number of tags error
- Added UpdateClickTracking() to modify click tracking for a domain
- Added UpdateUnsubscribeTracking() to modify unsubscribe tracking for a domain
- Added UpdateOpenTracking() to modify open tracking for a domain
- Added notice in README about go dep bug.
- Added endpoints for webhooks in mock server
- Change names of some parameters on public methods to make their use clearer.
- Changed signature of
GetWebhook()now returns []string. - Changed signature of
ListWebhooks()now returns map[string][]string. - Both
GetWebhooks()andListWebhooks()now handle new and legacy webhooks properly.
- Added
Message.SetTemplate()to allow sending with the body of a template.
- Changed signature of
CreateDomain()moved password intoCreateDomainOptions
- Added
Message.SetTemplate()to allow sending with the body of a template.
- Changed signature of
CreateDomain()moved password intoCreateDomainOptions
- Uncommented DeliveryStatus.Code and change it to an integer (See #175)
- Added UserVariables to all Message events (See #176)
- Updated Template calls to reflect the most recent Template API changes.
- GetStoredMessage() now accepts a URL instead of an id
- Deprecated GetStoredMessageForURL()
- Deprecated GetStoredMessageRawForURL()
- Fixed GetUnsubscribed()
- Added
GetStoredAttachment()
- Method
DeleteStoredMessage()mailgun API no long allows this call
- Changed signature of CreateDomain() Now returns JSON response
- Changed signature of GetDomain() Now returns a single DomainResponse
- Clarified installation notes for non golang module users
- Changed 'Public Key' to 'Public Validation Key' in readme
- Fixed issue with Next() for limit/skip based iterators
- Added VerifyDomain()
- Deprecated mg.VerifyWebhookRequest()
- Added mailgun.ParseEvent()
- Added mailgun.ParseEvents()
- Added mg.VerifyWebhookSignature()
- Removed context.Context from ListDomains() signature
- ListEventOptions.Begin and End are no longer pointers to time.Time
- Added mg.ReSend() to public Mailgun interface
- Added Message.SetSkipVerification()
- Added Message.SetRequireTLS()
- Added CHANGELOG
- Added
AddDomainIP() - Added
ListDomainIPS() - Added
DeleteDomainIP() - Added
ListIPS() - Added
GetIP() - Added
GetDomainTracking() - Added
GetDomainConnection() - Added
UpdateDomainConnection() - Added
CreateExport() - Added
ListExports() - Added
GetExports() - Added
GetExportLink() - Added
CreateTemplate() - Added
GetTemplate() - Added
UpdateTemplate() - Added
DeleteTemplate() - Added
ListTemplates() - Added
AddTemplateVersion() - Added
GetTemplateVersion() - Added
UpdateTemplateVersion() - Added
DeleteTemplateVersion() - Added
ListTemplateVersions()
- Added a
mailgun.MockServerwhich duplicates part of the mailgun API; suitable for testing ListMailingLists()now uses the/pagesAPI and returns an iteratorListMembers()now uses the/pagesAPI and returns an iterator- Renamed public interface methods to be consistent. IE:
GetThing(), ListThing(), CreateThing() - Moved event objects into the
mailgun/eventspackage, so names likeMailingListreturned by API calls andMailingListas an event object don't conflict and confuse users. - Now using context.Context for all network operations
- Test suite will run without MG_ env vars defined
- ListRoutes() now uses the iterator interface
- Added SkipNetworkTest()
- Renamed GetStatsTotals() to GetStats()
- Renamed GetUnsubscribes to ListUnsubscribes()
- Renamed Unsubscribe() to CreateUnsubscribe()
- Renamed RemoveUnsubscribe() to DeleteUnsubscribe()
- GetStats() now takes an
*optargument to pass optional parameters - Modified GetUnsubscribe() to follow the API
- Now using golang modules
- ListCredentials() now returns an iterator
- ListUnsubscribes() now returns an paging iterator
- CreateDomain now accepts CreateDomainOption{}
- CreateDomain() now supports all optional parameters not just spam_action and wildcard.
- ListComplaints() now returns a page iterator
- Renamed
TagItemtoTag - ListBounces() now returns a page iterator
- API responses with CreatedAt fields are now unmarshalled into RFC2822
- DomainList() now returns an iterator
- Updated godoc documentation
- Renamed ApiBase to APIBase
- Updated copyright to 2019
ListEvents()now returns a list of typed events
- Removed more deprecated types
- Removed gobuffalo/envy dependency
- Remove mention of the CLI in the README
- Removed mailgun cli from project
- Removed GetCode() from
Bouncestruct. Verified API returns 'string' and not 'int' - Removed deprecated methods NewMessage and NewMIMEMessage
- Removed ginkgo and gomega tests
- Removed GetStats() As the /stats endpoint is depreciated