Open lukebooroo opened 3 years ago
Thanks for bringing this to my attention. Is this the new enhancement SendGrid announced in September 2020? It wasn't clear in the release notes that there was new API endpoints.
I am a little confused though. What's the distinction between this new "verified senders" endpoint and the "sender identities" endpoint which StrongGrid already supports?
To make things more confusing, SendGrid apparently removed documentation for some of the endpoints in the old "sender identities" section. Only the "Create" endpoint is documented (there use to be a "Get" and "GetAll" endpoints as well):
Are they phasing out the old "sender identities" endpoints and replacing them with the new "verified senders"?
Also let's not forget the "legacy" sender identities.
This means that there are three ways to manage senders in the SendGrid API:
Honestly, I'm not too sure. I've since tried using endpoint I wanted myself for retrieving a list of known DMARC domains. It only returned gmail.com and yahoo.com. Contacted sendgrid, it turns out they've not actually finished making it work 🤷‍♂️.
So instead for the meantime, I've made a method which will check the DMARC DNS TXT record of a given domain. Probably better this way.
I did a quick comparison between "legacy sender identities" (which StrongGrid still supports but probably not for much longer), "sender identities" (which is what StrongGrid currently supports) and "sender verification" (which is the 'new' functionality you pointed out to me)
Method | Description | Legacy | Sender Identities | Sender Verification |
---|---|---|---|---|
Create | Create a new sender identity | :white_check_mark: | :white_check_mark: | :white_check_mark: |
Get | Retrieve a sender identity | :white_check_mark: | :white_check_mark: | :x: |
GetAll | Retrieve all the Sender Identities | :white_check_mark: | :white_check_mark: | :white_check_mark: |
Update | Update an existing Sender Identity | :white_check_mark: | :x: | :white_check_mark: |
Delete | Delete a Sender Identity | :white_check_mark: | :x: | :white_check_mark: |
Resend | Resend a verification email to a specified Sender Identity | :white_check_mark: | :x: | :white_check_mark: |
GetDomainWarnList | Get a list of domains known to implement DMARC | :x: | :x: | :white_check_mark: |
GetCompletedSteps | Determine which of SendGrid’s verification processes have been completed | :x: | :x: | :white_check_mark: |
VerifyRequest | Verify a sender request | :x: | :x: | :white_check_mark: |
I did some testing over the weekend: I created a sender identity with the new endpoint and I did not detect any difference with a sender identity created with the 'sender identity' endpoint.
The new endpoints seem to support the basic functionality provided by the "old" endpoints (with the exception of Get
but that can be easily worked around by invoking GetAll and filtering the result for the desired identity) and it seems to provide useful additional functionality such as update, delete, resend, etc.
All this to say that it probably make sense for StrongGrid to use the 'new' endpoints rather than the 'old' endpoints.
Having said that there just one thing that bothers me: the GetDomainWarnList
method seems out of place. Since it returns a list of domains, I feel like it would make more sense to include this functionality in StrongGrid's SenderAuthentication
resource which deals with domains rather that the SenderIdentities
resource.
I think the reason that they've bundled it with verifying a single sender rather than a domain, is that you wouldn't allow someone to verify a single sender at a domain which implements DMARC. When verifying a domain you wouldn't need to check since you're adding to the DNS records.
hummm. Makes sense so I'll leave the GetDomainWarnList
with the SenderIdentities resource.
While we wait for SendGrid's guidance, I took a stab at replacing the "Sender Identities" endpoints with the "Sender Verification" endpoints. I included a new method to retrieve the list of domains that are known to implement DMARC but I named the method "GetDmarcDomains" rather than "GetDomainWarnList". Let me know if you agree that this name is more clear,
I uploaded a prerelease package to my MyGet feed. It would be great if you could help me test it.
Hello,
Do you plan to support the verified senders endpoints?
https://sendgrid.api-docs.io/v3.0/sender-verification/domain-warn-list
:)