我有一个允许用户发送电子邮件的程序。为此,我的代码要求用户输入他们的电子邮件(发件人电子邮件)。然后程序会检查' @'之后的内容。如果它的gmail然后我设置属性:
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.host", "smtp.gmail.com");
props.put("mail.smtp.port", "587");
如果是雅虎,那么我设置属性:
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.socketFactory.port","465"); props.put("mail.smtp.socketFactory.class","javax.net.ssl.SSLSocketFactory");
props.put("mail.smtp.host","smtp.mail.yahoo.com");
props.put("mail.smtp.port","465");
然后我使用这样的属性创建一个会话对象:
Session session = Session.getInstance(props, new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
});
以上工作正常。我想要做的是让程序知道应该是什么设置,以防用户有一个托管在谷歌或微软的域。例如,代替电子邮件是yyy@gmail.com,它将是yyy@customer-domain.com。有没有办法让我的程序知道电子邮件的托管位置,或者我必须让程序询问用户?感谢。