Add MailgunMessage with most API fields#25
Open
asherber wants to merge 1 commit intotypesafe:masterfrom
asherber:feature/apifields
Open
Add MailgunMessage with most API fields#25asherber wants to merge 1 commit intotypesafe:masterfrom asherber:feature/apifields
asherber wants to merge 1 commit intotypesafe:masterfrom
asherber:feature/apifields
Conversation
Contributor
Author
|
I went ahead and did the versioned |
Contributor
Author
|
I actually now also have inline attachments working. When you have decided whether you prefer the versioned or unversioned |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
I see that previous mods have leveraged the
MailMessage.Headersin order to get tags and vars working. I took a slightly different approach. I created a newMailgunMessageclass which is a descendant ofMailMessageand which has fields for most of the things supported by the API – including Tags, Vars, CustomHeaders, DeliveryTime, etc.FormPartsBuildernow knows how to iterate over these new properties and supply the appropriate form parts to the API call. All of this is backwards-compatible; you can still just useMailMessageif you want, and you can still use the other methods of adding tags and vars.The only API fields I have not added are
inline, because it deals with attachments and is tricky when you don't have file-based attachments, and thehtmlonlyoption foro:tracking-clicks.This could be extensible in the future – could add
MailgunMessageV3_1orMailgunMessageV4as new fields are introduced by new API versions. In fact, I thought about makingMailgunMessagean abstract base class and calling the current classMailgunMessageV3; let me know if you'd like me to make this change.