2016-04-25 3 views
0

私は、機能のためのJSPベースのバックエンドを持つWebアプリケーションを開発しています。これまでのところ、どのユーザーも登録して、その間に手続きの手順なしでオンザフライでログインすることができます。ウェブアプリをより本格的にするために、ユーザーがサインアップして、ウェルカムメッセージとそのアカウントを確認するリンクを提供する電子メール通知を受け取るという機能を持っていたいと思います。どの擬似コードを使用するのが最適でしょうか。また、ユーザーに通知メールを送信する電子メールサーバーにサインアップフォームを統合するにはどうすればよいですか?JSP-web appサインアップとアカウントの確認に関するメール通知

答えて

0

javax.mail APIを使用して電子メール通知を送信できます。以下は、アクティベーションキーを使用する完全に機能するコードです。

public static void sendMail(String toAddress,String user,String psw, String key){ 

    final String msg = "<html><body><h3>** THIS IS AN AUTOMATED MESSAGE - PLEASE, DO NOT REPLY **</h3>This e-mail has been sent to you automatically as part of the registration process.<br> " 
      +"To activate your account, click the activation link below.<br><br>"+key+"</body></html>"; 
    Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider()); 
    final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory"; 
    Properties properties = System.getProperties(); 
    properties.setProperty("mail.smtp.host", "mail.dom.info"); 
    properties.setProperty("mail.smtp.socketFactory.class", SSL_FACTORY); 
    properties.setProperty("mail.smtp.socketFactory.fallback", "false"); 
    properties.setProperty("mail.smtps.auth", "true");  
    properties.put("mail.smtps.quitwait", "false"); 

    Session session = Session.getDefaultInstance(properties); 
    try{ 
     MimeMessage message = new MimeMessage(session); 
     message.setFrom(new InternetAddress(user)); 
     message.addRecipient(Message.RecipientType.TO, new InternetAddress(toAddress)); 

     message.setSubject("Your account activation"); 
     // message.setText(msg, "utf-8"); 
     message.setContent(msg, "text/html"); 
     message.setSentDate(new Date()); 
     SMTPTransport transport = (SMTPTransport)session.getTransport("smtps"); 

     transport.connect("mail.dom.info", user, psw); 
     transport.sendMessage(message, message.getAllRecipients());  
     transport.close(); 
     //System.out.println("Message sent...."); 
     }catch (MessagingException e) { 
     e.printStackTrace(); 
     } 
} 

あなたは(この場合はmail.dom.infoに)あなたのSMTPサーバーを指定する必要が注意だけでなく、サーバーのユーザー名とパスワード(あなたのWebホスティングプロバイダからこの情報を取得する必要があります)。最後のパラメータはアクティベーションキーです。

この例では、メッセージにHTMLエンコーディングも使用しています。

0
Apache Commons Email API is also available for sending E-Mail. 

If you have gmail account than these are few gmail account SMTP configuration using this you can send E-mail. 

Gmail SMTP server name: smtp.gmail.com 


Gmail SMTP username: your Gmail address 


Gmail SMTP password: your password 


Gmail SMTP port: 465 

using this configuration you can send email using your gmail account. For other service provider you have to find its SMTP settings and provide in your api configuration. 

Using apache commons api its quite easy like this : 

Email email = new SimpleEmail(); 
email.setHostName("smtp.googlemail.com"); 
email.setSmtpPort(465); 
email.setAuthenticator(new DefaultAuthenticator("username", "password")); 
email.setSSLOnConnect(true); 
email.setFrom("[email protected]"); 
email.setSubject("TestMail"); 
email.setMsg("This is a test mail ... :-)"); 
email.addTo("[email protected]"); 
email.send(); 


You can find more example from this : [1]:https://commons.apache.org/proper/commons-email/userguide.html 
関連する問題