Tom - I only see one smpt keychain entry for yahoo on all of my Macs - and that is smtp.mail.yahoo.com.
The smtp.att.yahoo.com could have been something that was created in your keychain in the past. I suspect you can probably delete it.
When the annoying prompt for yahoo pops up - I believe it is asking for the password for the incoming connection on imap.mail.yahoo.com on port 993. FYI - 993 is used for the incoming imap port over TLS.
Outgoing mail is always sent to an smtp server - in the case of yahoo - the smtp server that should be associated with your Yahoo account is going to be smtp.mail.yahoo.com and that will either be using port 25, 465 or 587. It's best to avoid port 25 - as many ISPs (such as comcast will block port 25). You are best off to specifically specify port 465 (preferred) or 587 (less preferred) for each of your outgoing smtp connections.
You should have only one smtp server specified for each of your mail accounts - you must use the smtp server that is specifically for the account being configured.
To verify - open mail - then select preferences - select accounts. Make sure you are on the account information screen. Find the area where it says "Outgoing Mail Server" - it should say "Yahoo!" - but even if it says Yahoo! - click on the arrows to show the list of available smtp servers - then at the bottom of the list - select "edit smtp server list". In the list that appears - select the Yahoo! account - and then select the advanced tab. On the advanced tab select "Use Custom Port" - and type in 465 for the port number. Also make sure that the Use Secure Sockets Layer (SSL) box is checked. Authentication type should be Password - and the user id should be your fully qualified yahoo account johndoe@yahoo.com and the password should be your Yahoo! password. Click OK. You should then be prompted to save the changes - and might not be prompted until you try to exit the preferences window.
Next - open the pull down menu under "Window" on the mail menu bar. Click on Connection Doctor - and let it run. It will show you whether mail is able to connect to all of the incoming pop/imap accounts as well as the outgoing smtp servers for each of your accounts. You should show a green dot on everything. If not you need to troubleshoot each connection that is not green.
If port 465 works for you for yahoo - then try setting the smtp connections for your other mail accounts to port 465and be sure to select SSL for each. Then run the connection doctor after each change. If a particular account has a problem with port 465/SSL - it will tell you. In that case - try port 587/SSL instead.
I'm not sure if changing my smtp ports to 465 is what fixed the problem for me or not - I changed all my accounts to port 465 a few months ago - after Comcast sent out an email indicating that they wanted port 465 to be used.
Hope this helps.
~Scott