diff --git a/src/main/java/handler/ConfigHandler.java b/src/main/java/handler/ConfigHandler.java
new file mode 100644
index 0000000000000000000000000000000000000000..5a6b352164ba5f355d21358ad0161c446b89a227
--- /dev/null
+++ b/src/main/java/handler/ConfigHandler.java
@@ -0,0 +1,27 @@
+package handler;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Properties;
+
+public class ConfigHandler {
+    private Properties prop;
+
+    public ConfigHandler(String filename) {
+        this.prop = new Properties();
+        try (InputStream input = getClass().getClassLoader().getResourceAsStream(filename)) {
+            this.prop.load(input);
+        } catch (IOException ex) {
+            ex.printStackTrace();
+        }
+    }
+
+    public String get(String key) {
+        return this.prop.getProperty(key);
+    }
+
+    public static void main(String[] args) {
+        ConfigHandler ph = new ConfigHandler("config.email");
+        System.out.println(ph.get("mail.smtp.password"));
+    }
+}
\ No newline at end of file
diff --git a/src/main/java/utils/EmailUtil.java b/src/main/java/utils/EmailUtil.java
new file mode 100644
index 0000000000000000000000000000000000000000..e6613d524b5b6cedac89cfb6417803367872de65
--- /dev/null
+++ b/src/main/java/utils/EmailUtil.java
@@ -0,0 +1,67 @@
+package utils;
+
+import handler.ConfigHandler;
+import javax.mail.*;
+import javax.mail.internet.AddressException;
+import javax.mail.internet.InternetAddress;
+import javax.mail.internet.MimeMessage;
+import java.util.Properties;
+
+public class EmailUtil {
+	private static EmailUtil instance;
+
+	public static EmailUtil getInstance() {
+		if (instance == null) {
+			instance = new EmailUtil();
+		}
+		return instance;
+	}
+
+	// private String[] getAdminEmails(){
+		
+	// }
+
+	public void sendEmail(String to, String sub, String body){
+		try {
+			ConfigHandler ch = new ConfigHandler("config.email");
+
+			Properties props = System.getProperties();
+			props.put("mail.smtp.host", ch.get("mail.smtp.host"));
+			props.put("mail.smtp.port", ch.get("mail.smtp.port"));
+			props.put("mail.smtp.ssl.enable",ch.get("mail.smtp.ssl.enable"));
+			props.put("mail.smtp.auth", ch.get("mail.smtp.auth"));
+
+			Authenticator auth = authenticator(ch);
+			Session session = Session.getInstance(props, auth);
+
+			MimeMessage msg = new MimeMessage(session);
+			msg.setFrom(new InternetAddress(ch.get("mail.smtp.username")));
+			msg.setRecipients(Message.RecipientType.TO, to);
+			msg.setSubject(sub, "UTF-8");
+			msg.setText(body, "UTF-8");
+
+			System.out.println("Message is ready");
+    	  	Transport.send(msg);
+			System.out.println("EMail Sent Successfully!!");
+
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	private Authenticator authenticator(ConfigHandler ph) {
+		String username = ph.get("mail.smtp.username");
+		String password = ph.get("mail.smtp.password");
+		Authenticator auth = new Authenticator() {
+			protected PasswordAuthentication getPasswordAuthentication() {
+				return new PasswordAuthentication(username, password);
+			}
+		};
+		return auth;
+	}
+
+	public static void main(String[] args) throws AddressException {
+		final String toEmail = "13521130@std.stei.itb.ac.id";
+		EmailUtil.getInstance().sendEmail(toEmail,"Subsription Notification", "Qwerty Uiopasdf Fghjkl Zxcvbn");
+	}
+}
\ No newline at end of file