Almost certainly it’s just Yahoo! being their usual terrible selves when it comes to mail delivery. Check your mail provider logs to demonstrate that it did, in fact, get delivered to Yahoo!'s mail servers, and then tell your user to yell at Yahoo!, or alternately switch to a mail provider that isn’t awful.
Matt’s right. This will also happen with AOL, Hotmail, Live, and any email service that routes messages through one of these providers.
The fix would be to use a dedicated sending IP address to avoid IP reputation issues that inevitably come up with shared IP addresses.
Some transaction email service providers, like Mailgun, are good about moving you to a better shared IP address if you ask them.
thank’s to your response, i forgot to tell that i used the sendgrid as mail server, is it good ? or do i need to switch to mailgun