使用JavaMail发送包含不同主机的电子邮件

时间:2015-12-08 00:59:03

标签: java authentication javamail

我正在创建一个用于通过Java程序发送电子邮件的应用程序。我目前的代码检查电子邮件和密码是否有效。这个问题是我使用 smtp.live.com 主机发送消息,如果用户输入的内容不是example@live.com,则无法使用。< / p>

这是我当前的代码,用于验证用户的电子邮件和密码:

 import java.util.Properties;

import javax.mail.AuthenticationFailedException;
import javax.mail.MessagingException;
import javax.mail.NoSuchProviderException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.swing.JOptionPane;

public class Authenticator {

    static Data d = new Data();

    public static void authenticate() throws MessagingException {

        d.password = LoginWindow.passwordField.getText();
        d.username = LoginWindow.usernameField.getText();

        Properties props = System.getProperties();
        props.setProperty("mail.transport.protocol", "smtp");
        props.setProperty("mail.host", "smtp.live.com");
        props.put("mail.smtp.starttls.enable", "true");
        props.put("mail.smtp.auth", "true");
        props.put("mail.smtp.starttls.enable", "true");


        Session session = Session.getDefaultInstance(props);

        try {
            Transport trans = session.getTransport("smtp");
            try {
                trans.connect("smtp.live.com", 587, d.username, d.password);
                JOptionPane.showMessageDialog(null, "Working, great!");
            } catch (AuthenticationFailedException e) {
                JOptionPane.showMessageDialog(null, "Password or Email Incorrect!");
            }
        } catch (NoSuchProviderException e) {
            e.printStackTrace();
        }
    }
}

我能做些什么让所有域都可以工作而不仅仅是live.com域吗?

0 个答案:

没有答案