Sometimes I feel like I don't understand Salesforce at all.
My company uses Salesforce and Marketing Cloud. I'm the one who sends emails in MC, but I'm having trouble investigating the cause of some undelivered emails. We have a handful of Salesforce campaigns created specifically to hold contacts for a series of mass emails. I added the Salesforce campaigns to the audience list when sending the latest email. After accounting for duplicates and contacts without email addresses, there were approximately 40,000 that would receive the email. But only 32,000 actually sent.
Some of these email addresses were unsubscribed, but many were marked as Active or not in the All Subscribers list in Marketing Cloud. I've looked through the reports and can't seem to find one that looks like it would shed some light on this issue. And the Salesforce Help site is not helpful.
Why would active subscribers not receive emails? Can I even send emails to someone who is opted into email in Salesforce but who's not in the All Subscribers list in Marketing Cloud?
There are multiple reason why a subscriber is not receiving an email. Well, assuming that the code/email template itself is okay and is not causing any error state at the parsing moment, the first thing to check if as you mention, the unsubscribed or bounce/held state.
Othe simply reason could it be if the subscriber is unsubscribed now or claimed your email as spam.
Finally, also consider there should be certain IPs to be whitelisted to avoid a deliverabilty issues among others.
You can find more details on this logic here
Related
We send monthly emails generated in SQL Server(2017) using sp_send_dbmail to clients containing sensitive data. Recently, there's been a breach where a client received something they shouldn't have received. The cause of this is honestly just bad code, but going forward we want to be able to screen emails more effectively. We are now avoiding the sensitive data issue by asking clients to log in to our system to look at this data instead. Whilst this would be perfectly normal procedure, certain people demand everything in an email. It's a security problem, but the client wants what they want, and the head honcho wants to give the client what they want.
We use Outlook, which has an outbox that nobody really uses anymore as far as I know. Is there a way to get SQL Server to place emails into a shared outbox account so that we can screen emails that contain sensitive data before we send them out?
For initial QA, data for emails containing alerts are generated via stored procedures and sent to QA analysts to check over. This is done by manually setting the recipients to the QA analysts for emails to all clients.
We don't expect them to cover every email as that would be insane, so we ask that they check a random selection to be confident enough that the data is accurate.
Once they are happy, we run the stored procedures again but we pass a parameter so that it cursors through a table that contains every email alert for each client and generates the tailored email for each client and is sent using sp_send_dbmail.
In other words, the email being screened by the QA analysts might not be the same as the email send to clients. This is how the breach occurred.
If we had a way to get these emails into a shared outbox, the QA work can be done on that shared outbox and then we can send the emails. Asking someone to hit send for a big bunch of emails would still be a pain, but perhaps a little less so than having another breach.
AFAIK sp_send_dbmail uses SMTP to send messages. If you want to place messages in the Drafts (or any other) folder of a particular mailbox, you will need to create messages (without sending) using Graph or EWS.
As described at https://support.google.com/datastudio/answer/9263641, there is now the Scheduled Email feature for Google Data Studio Reports.
We tried to set up a scheduled email in my organization and we noticed that the emails do not work for anyone except the person who set up the schedule. All emails have been verified to be correct and all users receiving the email have access to the underlying data source(s) (not sure if that matters though).
What do we need to do to get the scheduled email working for additional recipients? Even if it was only 1 other email, we could set up an email group and handle getting it to everyone that needs it.
This isn't actually an issue, after further investigation these emails were being caught by my company's spam filter. Once I whitelisted data-studio-noreply#google.com, I was able to receive the messages.
My GAE app sends email, and I followed Jeff Atwood's excellent article to improve the likelihood of email delivery.
The first two steps are really easy, but setting up a Sender ID record is more challenging. The article provides a link to a "Wizard" to help do this, but I don't know the answer to many of the questions in the wizard.
I use Google Apps for email so I'm thinking the Sender ID record should be the same for many other people in my situation (Google Apps and GAE users).
Can anyone point me to a Sender ID record for this?
EDIT:
This page explains how to set the SPF and SenderID record for Amazon SES, and gives the following TXT record for SPF:
v=spf1 include:amazonses.com -all
and the following TXT record for SenderID:
spf2.0/pra include:amazonses.com -all
Leontx's answer appears to give an SPF record and not a SenderID record.
Also, when I look at the headers of the email I send with GAE, there are notes saying that SPF authentication passes even though I haven't added either of the above TXT records to my domain. There is no info in the headers about SenderID.
I'm still confused about this, but I will now be using Amazon SES to send email. It is really cheap and it seems that Amazon takes a lot more care than Google to help make sure that email gets delivered.
Here's the TXT record I had to create to get SenderID to pass:
Host: #
Text value: v=spf1 include:_spf.google.com ~all
But I had to get both SenderID and DKIM passing to get mail into Hotmail's inbox. To get DKIM to pass I had to create a custom domain for our GAE app that matched the domain of the email's From address. Then I had enable DKIM through that domain's Google Apps account. Then it finally worked.
GAE mail (I use Python) does not give any feedback when you send mail. To receive feedback you have to use another service /API. I use Amazon SES in my applications.
Just wondering if someone else found a solution to the following :
--> I have an application running on GAE sending emails
--> These emails are delivered with no problem to gmail accounts but arrive in the spam folder of hotmail
--> I have adapted the SPF record in the nameserver to "v=spf1 include:_spf.google.com ~all" but that did not help
There are a few discussions on this subject in the past but not clear on whether or not there is another solution than asking people to add the application email in the contact list.
Thanks !
You should also add DKIM now that AppEngine finally supports it.
For anyone who is having the same issue.
Problem description
Mail sent from Google App Engine are delivered correctly to gmail.com but arrive in the spam folder of hotmail.com and are even automatically deleted from other
Solution
Two steps to follow:
In the SPF record in the nameserver, include "v=spf1 include:_spf.google.com ~all"
If you email accounts are managed by Google Apps, follow the DKIM procedure. This involves adding TXT records in your nameserver. Some companies offer to update this on-line, I add to exchange emails with the support of my registrar.
Someone invited me to be a developer on his app. I did not get the email invite?
I have had others invite me and it works (and works well!)
We got around the problem by having an invite sent to another account. That works for now, but I really need the invite to be sent to the correct account.
Gary
The question is borderline off-topic in that it's not usually a programming question, but it comes up so often, from programmers and the customers we support, that I wanted to put an answer here in the hopes that it would be helpful.
I see that it was in your spam folder, which is one of the more common causes of "lost" emails.
In short, when an email is sent from one server, it goes through several other servers and routers on the way to the final user's PC.
Any one of the following conditions could cause a sent email to not reach a recipient:
Blocked Outbound Mail - The sender's company/business/ISP has email scanning software that scans outbound email, and blocks suspicious outbound emails.
Our workplace has this to limit sensitive data being sent out accidentally, to block outbound infected emails sent from infected PCs.
Relay Server Permissions/Configuration - Your code is sending through a relay server that has rules blocking unauthorized use of email relay functionality.
In most shops with good security consciousness, email servers are configured to disallow email relay except for known IP addresses and/or known, explicitly authorized users.
External party blocks the email - The sender's company has been blacklisted.
Blocked Inbound Mail - The receivers company has email scanning software that scans incoming email (similar to #1) to block malicious/non-work related/bad emails from reaching the recipient's inbox.
Receiver's Spam Filtering - The receiver's email inbox has spam mail filtering, which may automatically move the email to a spam folder, delete them, or other action depending on how you have it configured.
Receiver's Inbound Mail Rules - Similar to the above. The recipient may have rules defined that block, delete, or move emails.
Outlook allows this, as do other email clients. Emails can match the patterns set for existing rules and result in false positives that trigger the rule execution.
Human error - the sender sent the email to the wrong email address.
Human error - the recipient accidentally deleted the email and just didn't see it. (You'd be surprised how often I've seen this.)
Bad programming - there was an error sending the email, but the exception handling ignores the error, so nobody ever knows any better.
Only #9 is actually a programming issue, and it's also (in my experience) the least common. Odds are that the problem has nothing to do with code that you'd be writing.
I'm sure there are more, but these are the ones I've seen the most frequently. I'll add as I think of others.