Mailgun - Sending email with new smtp user (forbidden) - email

I have been configuring my mailgun project. The steps I've followed are:
Configure and verify my domain
Create mailing lists
Create routes for my business partners (i.e. victor#mycompany.com)
Create a Sending API Key
Create new SMTP users -> I tried to login with new SMTP accounts (for business partners) using Thunderbird, but didn't work. Is it possible to use mailgun with Thunderbird?
As the 4th step didn't work for me, I am configuring a postman workspace (imported from the Mailgun docs). The main problem I am expecting is that, in order to send a message, I have to use api (username) and SENDING_API_KEY (password) in the Authorization section...
I want to use the SMTP accounts I created (victor#mycompany.com) with the generated password, but I get the error Forbidden. Any ideas?
Note: I am using Basic Auth.

Related

How to setup noreply#<domain> google Cloud Composer?

I am trying to use sendGrid with Google Cloud Composer and providing SENDGRID_MAIL_FROM value noreply-composer#domain (noreply-composer#gmail.com), while running the airflow dag receiving error 403: Forbidden
. I did some research and got to know that from should be verified in the sender list. But if I just want to send alert mail with noreply user, this username physically doesn't exist and can not be verified.
Does anybody know workaround for the same, so I can send the mail with noreply username?
Elaborating more to my comment, according to SendGrid documentation pages, each sender identity should be verified using either Domain Authentication or Single Sender Verification. Based on the intro of Single Sender Verification as of most common use case restriction:
You can send only from the address you verify rather than any address
on an authenticated domain.
With said this, you might have to validate email account ownership for each FROM email address entry.
Domain Authentication will probably help to overcome the above mentioned limitation, however it requires to edit DNS records of the domain provider name resolution service:
You can send from any email address on your authenticated domain.
After adding CNAME, TEXT or MX particular records to your DNS service, they need to be validated in SendGrid UI.
I encourage you to check out the relevant tutorial to give more essential outcome.

How to send emails from different custom subdomains? (sendgrid)

I have a domain (ex:- mydomain.com). I am using sendgrid mail service to send and receive mails. When I send any mail using sendgrid V3 API from address user#mydomain.com it is working fine. But I when try to use sub-domain user#username.mydomain.com sendgrid throwing 403 error (domain is not authenticated). Looks like it is accepting only root domain with out any subdomains. I would like to send emails from different custom subdomains.(like freshdesk and zendesk which allocates a different sub-domain for every user). Is there any way that I can overcome this probelm ?
Any little help would really be appreciated.
According to the info at SendGrid's Knowledge Center, you should be able to resolve your issue by properly setting up CNAME records for your sub-domains so that they point to sendgrid.net. See https://sendgrid.com/docs/glossary/cname/ for details.
Basically you need to 1) create a sub user 2) for the newly created sub user, go to Setting -> Sender Authentication to create your subdomain.
Then you need to go to Setting -> API Key to retrieve the access token for the new sub user. And use that access token when you send email and make sure to use the From address such as user#username.mydomain.com
You have to verify your subdomain also, similar as you verified your domain.
There will be 3 CNAME records given to you by Sendgrid which you can add into you DNS records in your domain.
(Only add first CNAME records Don't add last 2 records as it will be same as you already added for domain while domain(mydomain.com) verification
TYPE - CNAME
HOST - username.mydomain.com
VALUE - u2444223323.wl65.sendgrid.net

Allow certain email addresses to login via google in identity server

I would like to use identity server 3 with Google authentication to allow login from users with certain email addresses.
I can extract the email address from the claims in the OnAuthenticated method (GoogleOAuth2AuthenticationOptions.Provider.OnAuthenticated).
I would then like to reject the login if the email address is not in a list of specific addresses.
I have tried implementing IAuthenticationSessionValidator, but I do not have an email claim there.
I have also tried CookieAuthenticationOptions.Provider.OnValidateIdentity, but no email claim there either.
How should I perform such an email authentication check with identity server 3 and Google provider?
I found the solution, I had to add scope 'email' in OpenIdConnectAuthenticationOptions.

Proper Way to Programatically Send Mail Using Google Apps

I have a domain which uses Google Apps for Business to handle email. I already have it mostly set up--MX records point to the correct location and my domain is verified.
I'm now writing a python app (with Django) that will need to serve mail from my domain. What's the correct way to do this with Google? Should I create a Google Apps "user" for the organization as a whole, and then authenticate via SMTP as that user and send mail from there?
The Gmail API says that it
is the best choice for authorized access to a user's Gmail data.
and that
Automated or programmatic message sending
is a typical use case. However, I'm not trying to access a user's data or send mail on behalf of a user, but on behalf of my domain. What's the correct way to proceed?
Any help much appreciated!
You could use SMTP or the Gmail API based on your description. In both cases, you'll need some sort of service account to send mail from. With SMTP, as you mentioned, you'll be authorizing via the instructions you linked.
If you choose to use the Gmail API route, you'll be authorizing the API usage with the account. The Gmail API has many other use cases (e.g. to access user's data) but you're only using it to send emails on behalf of a service account you control.

JavaMail to send email out which server?

Here is my issue, I'm creating a website with a little login and resetting password. It's basic stuff, when user forget the password they can click the link and my application will send an email with a link to reset the password. Now, I'm using Google App to send/receive email so I created a new alias like noreply#company.com.
And I just got a confirm email from Google that I'm not allowed to use Google Server to send out email by JavaMail, because they do not support JavaMail as a mail client, the issue that I'm having is I'm getting AuthenticationException back from smtp.google.com.
Moreover, I'm using Amazon EC2 to host the application as well, and amazon provides SES service to send out emails. So, the question would be can I use Google App to host our company email for every employee, but can I still use Amazon SES to send out emails by JavaMail within the same domain name as we are using with Google Apps?. So, the emails that we'll be sending out would be noreply#company.com but will be from Amazon SES.
I'm not sure if I'm making this clear enough, my concern would be we redirect email MX Record to Google App already, I think we cannot redirect to Google and Amazon at the same time?
The application we are writing is based on Grails, so the email would be from Spring Email
Cheers,
Based on my usage of Amazon SES, you should be able to use the configuration you are suggesting without any issues. You do not need to add/change any MX record when using SES, because SES does not allow you to receive emails. It is only a service for sending (relaying) email messages, i.e., as far as I understood your needs, it will serve you perfectly, and your source email address will be the same as you use today.
When you sign up for SES and want to start sending test messages, you need to verify your source and destination email addresses before actually sending emails. You can achieve this verification through either scripting (ses-verify-email-address.pl) or API (VerifyEmailAddress on AWS SDK). After sending the verification request, you should receive an email address on the verified account. Just follow the message instructions and you can safely send some test messages.
When you are satisfied with your testing, you should request production access, and after this step, you no longer need to perform verification on destination e-mail addresses.
In order to call the API, I think you can use the AWS SDK for Java without problems in your application.
See more on:
http://aws.amazon.com/ses/
http://aws.amazon.com/sdkforjava/