Add Captcha Image with servlet

Standard

Follow followin simple two steps :

Step – 1 : Create servlet “CaptchaServlet” and paste following code in it :

package com.common;

import java.awt.Color;
import java.awt.Font;
import java.awt.GradientPaint;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.image.BufferedImage;
import java.io.*;
import java.net.*;
import java.util.Random;

import javax.imageio.ImageIO;
import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;

/**
* Servlet implementation class CaptchaServlet
*/
@WebServlet(“/CaptchaServlet”)
public class CaptchaServlet extends HttpServlet {
protected void processRequest(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {

int width = 150;
int height = 50;

char data[][] = {
{ ‘z’, ‘e’, ‘t’, ‘c’, ‘o’, ‘d’, ‘e’ },
{ ‘l’, ‘i’, ‘n’, ‘u’, ‘x’ },
{ ‘f’, ‘r’, ‘e’, ‘e’, ‘b’, ‘s’, ‘d’ },
{ ‘u’, ‘b’, ‘u’, ‘n’, ‘t’, ‘u’ },
{ ‘j’, ‘e’, ‘e’ }
};
BufferedImage bufferedImage = new BufferedImage(width, height,
BufferedImage.TYPE_INT_RGB);

Graphics2D g2d = bufferedImage.createGraphics();

Font font = new Font(“Georgia”, Font.BOLD, 18);
g2d.setFont(font);

RenderingHints rh = new RenderingHints(
RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);

rh.put(RenderingHints.KEY_RENDERING,
RenderingHints.VALUE_RENDER_QUALITY);

g2d.setRenderingHints(rh);

GradientPaint gp = new GradientPaint(0, 0,
Color.red, 0, height/2, Color.black, true);

g2d.setPaint(gp);
g2d.fillRect(0, 0, width, height);

g2d.setColor(new Color(255, 153, 0));

Random r = new Random();
int index = Math.abs(r.nextInt()) % 5;

String captcha = String.copyValueOf(data[index]);
request.getSession().setAttribute(“captcha”, captcha );

int x = 0;
int y = 0;

for (int i=0; i<data[index].length; i++) {
x += 10 + (Math.abs(r.nextInt()) % 15);
y = 20 + Math.abs(r.nextInt()) % 20;
g2d.drawChars(data[index], i, 1, x, y);
}

g2d.dispose();

response.setContentType(“image/png”);
OutputStream os = response.getOutputStream();
ImageIO.write(bufferedImage, “png”, os);
os.close();
}
protected void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
protected void doPost(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
}

Step – 2 : Add following html tag and give path to above servlet :

<img src=”http://localhost:8080/myprojectname/CaptchaServlet”&gt;

 

Send E-Mail via gamil account in java

Standard
  • Following Jar files needed :
    • mail.jar
    • mail-1.4.1.jar
  • Make a java file under src directory and run it as a java application :

package com.vastedge.rcbweb.service;

import java.io.PrintWriter;
import java.util.Properties;

import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

public class SendEmail {

public String emailToMerchant2() {
Properties props = new Properties();
String output = “”;
// props.put(“mail.smtp.host”, “smtp.ex1.secureserver.net”);
// props.put(“mail.smtp.auth”, “true”);

props.put(“mail.smtp.host”, “smtp.gmail.com”);
props.put(“mail.smtp.auth”, “true”);
props.put(“mail.smtp.port”, “465”);
props.put(“mail.smtp.socketFactory.port”, “465”);
props.put(“mail.smtp.socketFactory.class”, “javax.net.ssl.SSLSocketFactory”);

Session session = Session.getDefaultInstance(props,
new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(“from_user”,”password”);
}
});

try {
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress(“from_user”));
message.setRecipients(Message.RecipientType.TO,
InternetAddress.parse(“To_user”));
message.setSubject(“hello”);
// message.setText(sendMessage);  //TO SEND TEXT ONLY
message.setContent(“hi”, “text/html”); //TO SEND HTML CONTENT AND IMAHES ALONG WITH HTML CONTENT 🙂
Transport.send(message);
output = “emailSent”;
} catch (MessagingException e) {
output = “”;
throw new RuntimeException(e);
}
return output;
}

public static void main(String args[])
{
System.out.println(“nnnnnn”);
SendEmail sm = new SendEmail();
sm.emailToMerchant2();
}
}