Sending emails with the same address via both SendGrid and Google Workspaces - email

I'd like to send emails programmatically via SendGrid (from admin#mydomain.example.com), but have replies to that email come to my Google Workspaces inbox for admin#mydomain.example.com). I would then like to reply to the customer from Google Workspaces.
The closest question related to this I could find is Setup | G Suite + Sendgrid for transactional email, but that was a fairly different use-case.
So in my usecase, emails to the customer would come from admin#mydomain.example.com via EITHER SendGrid or Google Workspaces.
Here's a article from MailGun that talks about a similiar pattern
My questions:
Will this result in deliverability issues, having emails sometimes come with different signing keys/domains? I don't understand email signing particularly well.
Is there anyway to have replies to the email address go to BOTH SendGrid and Google Workspaces, so I'll have it in my inbox but can also get it posted to a webhook by SendGrid? I think the answer is no, but figured I'd ask.
Any other considerations I should keep in mind for this strategy? Is this a poor idea for some reason?
Thanks!

Yes, this will result in deliverability issues. You should use the same domain for both sending and receiving.
No, you can't have replies go to both. You can have replies go to a webhook, but you can't have them go to both a webhook and a mailbox.
Final consideration: This is a poor idea. You should use the same domain for both sending and receiving. If you want to use SendGrid, you should use SendGrid for both sending and receiving. If you want to use Google Workspaces, you should use Google Workspaces for both sending and receiving. You can't use both at the same time.
Another consideration: If you're sending a lot of emails, you might get flagged as a spammer if you're sending from multiple domains.

The company I work for does something similar that might be helpful for your scenario.
We have a number of systems that send emails via SendGrid e.g. Auth0, Salesforce, various bespoke systems, etc. Some of these use native integrations to SendGrid, some use SMTP relaying, and others send emails programatically via the SendGrid API.
We've implemented sender auth (i.e. DKIM) in SendGrid for our domain e.g. mydomain.example.com, but we don't handle replies in SendGrid as we want replies to go to a different system - specifically our contact center system (which is the main systems our help desk staff use). Help desk staff would then reply to emails from within the contact center system. Note: we needed to configure DKIM for both SendGrid as well as the contact center system (as both currently send emails from mydomain.example.com), but in the future the intent was to implement a SMTP relay in the contact center system (to SendGrid) so that all sending goes through SendGrid.
I'm a bit fuzzy on the fine-grained implementation details of how we handle replies, but essentially we point the (single) MX record for mydomain.example.com to a third-party email protection system which scans the emails and forwards them to Office 365 mailboxes which subsequently forwards them to our contact centre system. I believe Office 365 is really only there for email posterity. AFAIK you should be able to point the MX record to anything that can handle SMTP.
In your scenario you should be able to configure the MX record for the mydomain.example.com domain to point at your Google Workspaces. This will allow you to send emails from SendGrid and use Google Workspaces to handle the sending and receiving of replies.
Not sure if you can configure SMTP relaying in Google Workspaces (i.e. to relay through SendGrid), but this would mean you'd only need to configure DKIM for SendGrid. All emails would be sent by SendGrid and replies would be go to Google Workspaces.

Related

How to exceed 10,000 Emails sent using Office 365

This isn't necessarily a programming question just yet but is a question that many programmers at corporations might be able to answer.
My company recently switched over to Office 365. We have a "noreply" email that sends out emails whenever our customers request work. The limit for Office 365 is 30 emails per minute or 10,000 emails a day. Currently the messages are being marked as spam and will not be delivered due to these restrictions. To over come this we have heard of services like mail chimp and mail gun but by visiting their websites I wasn't able to immediately infer on how to do this.
Can anyone provide some details on how they would overcome this situation? Also is your solution one that can be applied directly to Office 365 and the email or is it something that would require code change on the server sending emails (Using SMTP to send them).
It is not possible to change this restriction in Office 365. To quote Microsoft:
"Exchange Online customers who need to send legitimate bulk commercial
email (for example, customer newsletters) should use third-party
providers that specialize in these services."
What you can do is use a provider like Sendgrid or any other 3'rd party SMTP relay provider.
The provider will give you an SMTP hostname that you can point your code towards as sending server. What method of authentication to use will depend on the provider.
It is important to remember that if your domain uses SPF (which is highly recommended) that you include the new providers systems in your SPF record to ensure that it is not marked as spam.

Use Google Apps and Mandrill/Sendgrid to send emails

Right now I have dilemma with email part of my projects. I'm using Sendgrid to send and receive emails (via webhook). All email functionality is integrated in my web application and all the emails are stored in the database. I want to know is it possible to do next:
Use Google Apps to receive inbound emails for support#domain.com
Use Google Apps to send outbound emails from support#domain.com
Use SendGrid or Mandrill to send outbound transactional and news
emails from noreply#domain.com and news#domain.com
Current problem is in MX records. Both Google and SendGrid MX records are required to be set in my DNS, but as far as I understand only one of them will actually work.
What is the best solution to make it possible?
Thank you.
One possible solution:
Point your MX records to google for your top level domain, domain.com.
Create support#domain.com email
Next, create a subdomain (i.e: sub.domain.com) and point the mx records to sendgrid.
Then, set up news#domain.com to forward to news#sub.domain.com. This way those emails get sent to your application.
Nothing needs to changed for sending outgoing transactional emails with SendGrid. You can send emails from news#domain.com. I also recommend to NOT USE noreply#domain.com, this hurts your deliverability(https://sendgrid.com/blog/why-you-should-not-use-noreplydomain-com-in-your-emails/)
The easiest solution is probably to use a subdomain for either the inbound emails or the outbound emails, so that you can keep the MX records separate. Receive emails to domain.com, send from e.g. mail.domain.com

Silverstripe Email sent via Contact Form does not arrive

in a recent project I integrated a custom Contact Form which uses the silverstripe Email Class. Unfortunately the sent E-Mails do not arrive at the client. It seems to depend on the host/domain of the target E-Mail Address. E.g. gmx does work (but spam), but receiving the mails on the E-Mail Address of the client does not work at all (hosted at united domains). Thanks,
Florian
The Email class in SilverStripe is admittedly not the greatest ;) But apart from potential lowlevel encoding errors, email delivery mainly depends on factors outside of SilverStripe.
You can start debugging mailservers, DNS records, spam headers, bounce emails, etc - but in the end its probably far easier to leave email delivery to a SaaS-provider like SendGrid or MailChimp. Both have offerings where you can just point your PHP configuration to their SMTP servers. SendGrid has a nice best practice collection on what to watch out for when sending emails in general.

Sending single emails without being marked as spam

I'm using my Google Apps account (Standard version) to send single emails (automatically) to real interested customers.
The problem is that my sender email account has been suspended, because it's been considered as a "spammer" by Google.
What can I do in order to send that kind of emails from now on? I use MailChimp to send massive emails, and I've seen it has an API, called STS, for sending single emails, but it also required an Amazon SES account, so I don't know whether to invest on those services or doing something else.
What do you recommend for this case?
You should try a service that specializes in sending "transactional" emails, such as Sendgrid, Postmarkapp and Mailjet.
They have APIs and libraries for most programming languages, but in your case you just need to configure the SMTP server they rovide in your email client and you're good to go. They help you not get into the spam folder of your recipients, and help make sure you don't get flagged as a spammer
With most of them you should get some prettty powerfull analytics as well, which is a nice bonus.

How are SaaS/Mult-Tenancy apps implementing email notifications (sending and receving)?

Given multi-tenant application, How are vendors implementing email notifications from an email account setup and programming perspective:
Sending emails could come from a generic account: eg notifications#VendorName.com or noreply#VendorName.com, this seems reasonable considering reply addresses and lilnks can be contained within the email contents.
Receiving Emails: How would an application receive email, for instance; to generate support tickets or assign comments in an email to a project/task. I have seen ID's within the subject and some reply to addresses containing the account name eg: notifications#AccountName.VendorName.com
I realise one can programatically connect to a pop3 server and receive emails and look for the IDs with the subject, but is there a way of setting up and receiving email to a single pop3 account from multiple sub-host name email addresses (not sure on terminology there) eg: noreply#AccountName1.VendorName.com or noreply#AccountName2.VendorName.com and check the Account Name from the address? (similar to checking subdomains on a URL)
Any practices, experience, comments or sughestions?
(not sure its relevant, but using C# asp.net-mvc and services etc)
For sending notification emails, we have a notification send to address associated with each account and simply send from our domain to that address. Our from address is monitored and replies end up in the CSR work queue.
For inbound emails, we use FogBugz (from the makers of Stack Overflow) for case tracking. That accepts new cases via email (e.g. cases#mycompany.com). Tickets are auto-created from the email. My only complaint there is that the customer needs to check an obscure link for case updates (no "my cases" web portal, but maybe that will come out in an upcoming version of FogBugz).
We have a custom field in FogBugz to indicate the customer the ticket is from. We could theoretically write a plugin to FogBugz that auto-assigns that using the senders domain, but I guess the CSR's haven't complained loudly enough yet :-)
We (at muHive) are an inbound email/social conversations management product. If you are looking at a handling inbound email or social media conversations from customers, we have an impressive toolset.
For our own outbound needs, the simplest way is to use an Email sending API. Don't bother with SMTP sending by yourself. We use Amazon SES and have also tried Sendgrid which gave us additional benefits like delivery status and email parsing.
There are two ways in which you can handle multiple accounts to a catch all email address. If your target system can differentiate between different customers and assign tasks to the correct representatives based on either the content/sender, ask all your customers to send an email to support#company.com.
As you rightly said, you could also create *accountName_support#company.com* email addresses and use different accounts on whatever CRM/Support solution use to manage these emails.
Another approach is to have your customers send you an email to support#company.com and you use a rule based system (like muHive) to forward these mails to the appropriate account executives based on the customer/account who sent the mail.