我正在创建一个用于通过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域吗?