我们正在编写一个需要允许用户注册的应用程序。典型的方法是用户键入包括其电子邮件地址的注册信息。系统然后向他们发送电子邮件。当他们回复时,确认注册。
代码在Java servlet中。以下是相关方法:
public void sendEmail(HttpServletRequest request){
//your host
String host = "nexus.stevens.edu";
//email from
String from = "user@stevens.edu";
//email to
String to = request.getParameter("email-address");
String userName = request.getParameter("userName");
String password = request.getParameter("password");
// Get system properties
Properties properties = System.getProperties();
properties.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
properties.setProperty("mail.smtp.host", host);
properties.put("mail.smtp.starttls.enable","true");
properties.put("mail.smtp.auth", "true");
properties.put("mail.smtp.socketFactory.port", "465");
properties.put("mail.smtp.port", "465");
// Get the default Session object.
Session session = Session.getDefaultInstance(properties);
try{
// Create a default MimeMessage object.
MimeMessage message = new MimeMessage(session);
// Set From: header field of the header.
message.setFrom(new InternetAddress(from));
// Set To: header field of the header.
message.addRecipient(Message.RecipientType.TO,
new InternetAddress(to));
// Set Subject: header field
message.setSubject("Registeration Confirm");
// Send the actual HTML message, as big as you like
message.setContent("<h1>Congradulations to register successfully!</h1></br>" +
"<p>Your username is: "+userName+"</p>"+
"<p>Your password is: "+password+"</p>"+"PleaseRemeber!",
"text/html" );
// Send message
Transport transport=session.getTransport("smtp");
transport.connect("nexus.stevens.edu","user","password");
transport.sendMessage(message,message.getAllRecipients());
transport.close();
System.out.println("Sent message successfully....");
编写此代码的用户可以通过垃圾邮件过滤器一直向下发送给gmail。对于我们其他人来说,它会反弹。但他可以登录他的电子邮件并发送电子邮件,当然这可以通过。我们如何对我们的服务器进行身份验证?