I am not the only person experiencing this issue, it’s cropped up all over the place lately, and I’ve spent a lot of time trying to figure out the problem. It’s not me. It’s not you. IT’S YAHOO. Luckily, I have a solution for you!
So what’s the deal?
In 2014, Yahoo created a DMARC “p=reject” record, basically telling all servers to reject the email if it doesn’t originate from Yahoo. Guess what? When you submit a form online, it’s not originating from Yahoo. Therefore, all emails that are being submit from users with a Yahoo email address are never making it to you. Frustrating, right?
I looked all over for a solution to this problem. Seriously, I tested and tested. Every time I put in a Yahoo email into my forms, for myself and my clients, whether I was using Gravity Forms or Contact Form 7, those messages never arrived. I set up Mandrill with my site to track the emails, and the Mandrill report said the emails were going through. But I never got the message.
I had clients getting crabby with me about it, thinking it was my fault. But it’s not my fault, and it’s not your fault. The fault lies with Yahoo.
So how about that fix?
Here’s what you have to do. In your form settings, you will have to change the sender to your own email address. I know this is annoying, but it’s the ONLY way to get those message to come through to you. Then, if you want to be able to respond to the actual email recipient, instead of responding to yourself, you’ll want to set up the “Reply To” email address with the sender email.
If you use Gravity Forms, it’ll look something like this:
So the email is actually coming FROM myself, but if I reply, it goes to the sender. Not the most elegant solution, but it’s the only one that works.
Amy Masson
Amy is the co-owner, developer, and website strategist for Sumy Designs. She's been making websites with WordPress since 2006 and is passionate about making sure websites are as functional as they are beautiful.
Amy, I can’t thank you enough. This was what I ended up finding as a possible suggestion via WP Forms as well as Yahoo themselves somewhat vaguely mentioning it. However, your post really helped confirm it for me!
For anyone using WP Forms (Pro or Lite, either one): The default Reply To field will will have {field_id=”1″} in it. The number inside (in this case, “1”, the default value) should match whatever the little field number is beside the entry box your reader will put their email address in.
Change the email from field if necessary to {admin_email} or whatever you prefer, and that’s it. You’ll get an email with the non-Yahoo email address as the “From” but the “Reply to” will be their email address. {admin_email} will be your admin email address you setup in your WordPress dashboard already.
It should be fine when you do that. I tested it myself.
Seriously Marty! Its 2023 and we are still having this issue! I JUST figured out my form is not working for yahoo users. I’m so sad and feel horrible for missing them for rlikely years! Thanks Amy
I think there’s a way to make and if in the php. If the sender is yahoo, then send with your own mail. If not, proceed normally. Can you help me with that?
Hi Amy
I have problems with Yahoo emails and hotmail emails coming through, (im guessing other email providers have done the DMARC too which im not aware of) My site is HTML not wordpress and cant work out how to do the send email to myself as you described above, is there a certain line of HTML code to input on the mail part of the code?. im a bit lost.
Unfortunately, I can’t provide much help with non-WordPress sites.
This is somewhat enlightening, but may I add that I have noted that my web-form using php will not work because the email address which the sender’s message is to be sent to is an email address which is associated with Yahoo.
So, in my case, I cannot set up the contact.php form so that any messages left on the web-form are sent to “any-person@sky.com” because sky.com USES Yahoo mail!
But if I change the contact.php form so that messages from the web-form are to be sent to “any-person@gmail.com” then the email comes through, although, unfortunately, always and only to the Spam folder at the gmail account.
Php contact forms are prepared to deal with gmail but they will NOT forward Yahoo-related emails.
Hi David, Amy Masson,
I’m curious to know if you got anywhere with your php yahoo mail issue?
Issue: My php mail form (or even a test form from GoDaddy) will not send an email to the intended yahoo recipient if the “From:” section involves a yahoo email address. It works fine with a GoDaddy, or Gmail account. To reiterate, if you enter a yahoo address in the From: section, no email is received. Much appreciation if you have any insight to this. Thanks!
This post is from 2015, so is likely not relevant anymore, unfortunately.
It is totally still
relevant! Sadly!
Thank you for Article Amy. This solution has been working to me for a while until today I have heard that gmail is no longer supporting the reply to in the header. https://wordpress.org/support/topic/reply-to-in-additional-headers-is-being-ignored/
Have you experienced this issue yet? Some of my client start having this problem when they reply email, it set to sender instead rely to email.
Hello Amy,
I’m still a little confused. You were talking about Yahoo email not working. In the example, you are not using an yahoo email.
Is it possible to get the notifications to send out using a yahoo email?
I’m also using Gravity forms and tried Contact form 7 and other ones and nothing works with yahoo.
Thank you,
No, my email is not Yahoo. The problem is when the person who is submitting an email through a contact form and their email is a Yahoo email. Those emails won’t come through a form because of DMARC.
Wow, you nailed it Amy! I’ve been experiencing the same issues with multiple sites and never understood what was causing it when it was only Yahoo and nothing else had a problem! Thank you for digging into this and explaining what the real reason was!
Happy to help!
I have the same issue. I have a php form with is going to my gmail account. If the form is filled out with yahoo, it never comes through.
I tried making a yahoo account but it still doesn’t show up. I don’t really understand what you mean by send the email to yourself…? Can you explain further please.
My php form has:
Hi Paul – is your site WordPress? Try making the “from” email address your own email address in the field, so no matter what the sender’s email address is, it comes “from” you instead of from them. Then make their email address the “reply to” email address.
Thank you Amy!
Happy to help!