Simple reusable GMailJava class for sending Aysnc emails. Copy the class, change the username/password and use it in your next project.
Step 1: Add dependencies to your maven project
<!-- mail --> <dependency> <groupId>javax.mail</groupId> <artifactId>mail</artifactId> <version>1.4</version> </dependency> <!-- Apache Commons Validator --> <dependency> <groupId>commons-validator</groupId> <artifactId>commons-validator</artifactId> <version>1.4.0</version> </dependency> Step 2: Copy EmailService.java to your project & set username/password code: https://github.com/intesar/GMailJava/blob/master/src/main/java/com/bia/gmailjava/EmailService.java Sample code EmailService emailService = EmailService.getInstance(); emailService.sendEmail("<toemail>", "<subject>", "<body>"); Design Decisions No interface is define to keep simpler eco-system, feel free to add yours if required and refactor code accordingly Pattern's & Technique's used - Singleton, Command, Async, Inner classAlso you can clone it on github https://github.com/intesar/GMailJava
According to JPA specification we can define multiple "persistence-unit" elements (i.e. like below) in persistence.xml file and can easily refer them inside Dao layers as this. public class PolarDaoImpl { @PersistenceContext(unitName="PolarPU") protected EntityManager entityManager; -- } public class BearDaoImpl { @PersistenceContext(unitName="BearPU") protected EntityManager entityManager; -- } Checkout sample persistence.xml <?xml version="1.0" encoding="UTF-8"?> <persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"> <!-- Database 1 --> <persistence-unit name="PolarPU" transaction-type="RESOURCE_LOCAL"> ...
Comments
GMail --> Settings --> Forwarding and POP / IMAP