It is not because someone logged into your yahoo account and sending mail.
Spammer has used this method of sending mail to you using your email address (i.e. they have mask their mail sender's name with your email (or receiver) address) so that spam filter thinking it was send by you and doesn't filter it to junk mail. It is old trick used by spammer i.e. mail send by them having sender's and receiver's email address same.
This email address address is randomly generated and not leaked by yahoo.
If this yahoo mail is so important for your business, try using following steps:-
1> using thunderbird email client to access yahoo mail
https://answersrip.com/question/index?qid=20070904142158AAfyJbP
(the above solution you can use but instead of hotmail web extension, use yahoo web extension and instead of hotmail address use yahoo address)
2> get a digital signature
http://www.thawte.com/secure-email/personal-email-certificates/index.html
log this website and follow steps to get digital signature installed in thunderbird.
3>digital sign your message to verify it was send by you.
when composing mail, select Tools>options>"digital sign the message"
PS:-
1>remember "digital signing" email it becomes more difficult for you to later legally deny that that mail was send by you.
2>Only inbox of yahoo is synchronize and other folder made in yahoo cannot be download to thunderbird email client
3> if you still have trouble setting up, mail me using my profile details.