Sire, Google is your friend.
In short, there is no simple answer to your question. Email delivery is not very trivial, especially since it does not depend on your programming entirely.
99% is your host fault. If your are VPSing, or on shared hosting - you can forget about it since you are inheriting reputation of other 300 people using the same server.
If you own your server, check your IP reputation and then figure that you will need 2-3 months of flawless emailing to start getting through.
If you have 5K to blow a month, use ReturnPath OR just someone like CampaignMonitor or MailChimp ESPs to deliver your emails.
DEBUG: If you have root/shell access, try the following:
- "dig mx yahoo.com" from shell
- copy first or second authorized answer
- telnet (IP/domain) 25
- manually emulate SMTP conversation like this
- Paste what the Yahoo mail server tells you here
P.S. If you are getting into spam folder, congrats! Typically your mail will be dropped at SMTP level, quietly. Worse even you will get deferred SMTP errors from Yahoo : that means they throttle you because they do not have enough data on your complaint ratios.
P.P.S. Setup DNS records to include SPF, and also push DKIM signing for your MTA. This will help greatly when you will try to prove your legitimacy.
P.P.P.S. Use http://www.senderbase.org/ to look up your IP first.
Good luck.