SendGrid on Azure to Receive and Parse Emails - azure

How do I go about receiving emails in SendGrid parsing them and sending the output to Azure. Some specific questions I have:
what is the hostname I should specify on the SendGrid Inbound Parse screen?
does it have to do anything about the server domain I receive emails from? Do I specify the Azure hostname here?
Which URL should I specify? is it the Azure URL I want to forward the email contents to?
Any help is appreciated

Related

Sendgrid Inbound Parse Webhook Emails are not received on Sendgrid

I am using the SendGrid for receiving the emails from my domain (example.com). I have configured all the steps from the mentioned link Sendgrid Inbound Parse Webhook.
I have added all the name records(MX records and CNAMES) in the GoDaddy DNS records against my domain.
The issue is when I send an email to hello#example.com. When an email is sent to this email-id there is no mail delivery failure report. There is no any statistics for the SendGird console about the webhook got triggered.
I am not able to figure out what went wrong in this process. As emails in the sendgrid webhook are not received.
I think they are lost in between.
I found the documentation to be insufficient in this area. You need to send to the subdomain, listed in your MX record, which redirects mail to sendgrid.
For example, if you add a MX record for email.example.com, you need to send the email to user#email.example.com.
One of the best ways to test if a 3rd party Web API post is being triggered or not is by using a tool that receives posts and provides visibility to the data sent along with the post (e.g. Headers, parameters, and the related data in json, text, etc).
One of the tools that I have used to test if a post is being triggered or not is offered by: https://requestbin.fullcontact.com/. Take these steps to set-up your testing environment:
(note: I am not associated with the requestbin.fullcontact.com resource - I am just an enthusiastic fan of this very useful service).
Go to requestbin and "Create a RequestBin". This will create your own unique requestbin URL. (e.g. https://requestbin.fullcontact.com/xxxxx)
Copy this URL, and paste it into your SendGrid Inbound Parse "Destination URL".
Keep your testing environment simple initially by NOT checking the "Additional Options" (Check incoming emails for spam & Post the raw...).
Be sure you do not enter a 'Subdomain' in the SendGrid Inbound Parse "Receiving Domain" unless you are expecting users to use the subdomain as part of your email address.
Re: #3, same applies to your DNS at GoDaddy. Your email should also not reflect a 'subdomain' as part of your MX record (e.g. you should not use mail.example.com).
Click "Add".
Now, send an email to your domain (e.g. info#example.com).
Check your requestbin to see if a post was made by using your unique requestbin URL, appended with "?inspect" (e.g. https://requestbin.fullcontact.com/xxxxx?inspect).
Result: You should see post information when viewing your 'inspect' URL.
Using this first step of a diagnostic process to test your usage of SendGrid's Inbound Parse should help expose potential problems in your configuration (e.g. DNS set up would be the next area to look at if no post data is being received in the requestbin inspect URL). Good luck.

DocuSign API Email Verification

I'm having an issue receiving the verification email from DocuSign that is needed to create an account under my master account to connect for use with API. The emails don't appear to be hitting my firewall, nor are they showing up in my email. Does anyone know if these emails are coming from docusign.com, docusign.net, or some other domain?
In Demo emails will come from dse_demo#docusign.net and in PROD it should come from dse#docusign.net. Also please check your Spam/Junk folder if it landing on these folder as per your email server policy.

SendGrid inbound parse failure with Azure deployed app

I have created a simple ASP.NET Web API app that receives parsed emails from SendGrid. Works well on my machine using a secure tunnel with ngrok. The parsed content of emails is posted to the locally hosted app.
However, when I deploy this app to Azure it does not work. I tried to use both HTTP and HTTPS for the callback URL in SendGrid, but emails are not processed. In the Activity page in SendGrid there is no entry for a Parsed email. And I get back a delivery failure email, for the email that should have been handled by SendGrid.
The response was: 550 no mailbox by that name is currently available
I know the app is reachable because I can do successful HTTP requests to other resources, from the browser or other tools.
Is there something that I might have missed? Some additional configuration, either for the app or in SendGrid?
The short answer is this:
If you use CloudFlare for your DNS, it is highly likely that CloudFlare is stopping the inbound parse posts from SendGrid.
Review your Firewall Event Log in CloudFlare (under the Firewall Tab) and see if your Web API "Host" is appearing there.
If so, what you'll need to do is whitelist the IP Address range that SendGrid uses to send posts for the inbound parse.
Their current IP range for the inbound parse as of today is 167.89.117.0/24 (basically of the IP address from 167.89.117.0 to 167.89.117.255).
Hope this helps you or someone else with this same issue/root cause.

How to set up DNS for inbound emails using Node.js

I would like to parse inbound emails in a Node.js app hosted on Digital Ocean. I want to create an email address for my app's domain that can post to a webhook. How do I create an email address like name#example.com (or name#subdomain.example.com)? I am trying to avoid creating one through a third party because I just need to quickly parse the incoming content, and don't need all the functionality of regular email.
For parsing, I am using Mailin.io, and following Mailin's documentation I have changed my Domain records on Digital Ocean as follows:
MX 10 subdomain.example.com
A subdomain [ip address of my droplet]
I have the webhook set up at http://www.example.com/webhook, and if I post using curl, I get the expected response, but I can't figure out how to post to the webhook via email.
Am I going about this the right way?

Send email from #my-domain.com using SendGrid in Azure

I have my web app working in azure. What I would like is to be able to send emails from xxx#mydomain.com. Is that possible using SendGrid?
For example, if I use gmail's smtp, emails are sent from the email address specified in the NetworkCredentials user name, even if in the MailMessage I use a different email address.
If I use SendGrid instead, will emails come from the user name created by azure or will I be able to achieve this?
You will be able to send email from whatever address you want, just specify the correct from address (e.g. xxx#mydomain.com) when sending the email.
You will need to use what SendGrid calls "Whitelabels":
To access this page, log into https://app.sendgrid.com/ then click on Settings > Whitelabels > Domains:
SendGrid will then ask you to enter 3 CNAME records to prove that you own/ have authorised access to that domain.

Resources