How do I use the Yahoo SMTP server to send mail with the JavaMail API?
Created May 4, 2012
John Zukowski From your Yahoo mail account, you need to enable POP Access and Forwarding. Select Options in the left gutter, then POP Access & Forwarding under Mail Management. You need to have Web and POP Access enabled. This is not a free service. You then MUST use your Yahoo address as the FROM address when sending the message. The basic mail sending program with authentication is sufficient.
import java.util.Properties; import javax.mail.*; import javax.mail.internet.*; public class MailExample { public static void main (String args[]) throws Exception { String smtpHost = "smtp.mail.yahoo.com"; String popHost = "pop.mail.yahoo.com"; String from = args[0]; // with @yahoo.com String to = args[1]; String username = args[2]; String password = args[3]; // Get system properties Properties props = System.getProperties(); // Setup mail server props.put("mail.smtp.host", smtpHost); // Get session Session session = Session.getDefaultInstance(props, null); session.setDebug(true); // Pop Authenticate yourself Store store = session.getStore("pop3"); store.connect(popHost, username, password); // Define message MimeMessage message = new MimeMessage(session); message.setFrom(new InternetAddress(from)); message.addRecipient(Message.RecipientType.TO, new InternetAddress(to)); message.setSubject("Hello JavaMail"); message.setText("Welcome to Yahoo's JavaMail"); // Send message Transport.send(message); } }Note: Previously, POP authentication was required. That is no longer the case.