Object-Oriented Email Sending SDK
It is as simple as this:
import com.jcabi.immutable.Array; import com.jcabi.email.Enclosure; import com.jcabi.email.Envelope; import com.jcabi.email.Postmap; import com.jcabi.email.wire.SMTP; import com.jcabi.email.Stamp; import com.jcabi.email.enclosure.EnBinary; import com.jcabi.email.enclosure.EnPlain; import com.jcabi.email.stamp.StBCC; import com.jcabi.email.stamp.StRecipient; import com.jcabi.email.stamp.StSender; import com.jcabi.email.stamp.StSubject; Postman postman = new Postman.Default( new SMTP( new Token("user", "password").access( new Protocol.SMTP("smtp.gmail.com", 587) ) ) ); postman.send( new Envelope.MIME( new Array<Stamp>( new StSender("Yegor Bugayenko <yegor@jcabi.com>"), new StRecipient("Jeff Lebowski <jeff@gmail.com>"), new StSubject("dude, how are you?"), new StBCC("my-boss@jcabi.com") ), new Array<Enclosure>( new EnPlain("Hi, long time no see! :) Check my pic!"), new EnBinary( new File("/tmp/picture.gif"), "my-picture.gif", "image/gif" ) ) ) );
The only dependency you need is (you can also download jcabi-email-1.10.jar and add it to the classpath):
<dependency> <groupId>com.jcabi</groupId> <artifactId>jcabi-email</artifactId> <version>1.10</version> </dependency>
Well, you will also need these (in this specific order):
<dependency> <groupId>javax.activation</groupId> <artifactId>activation</artifactId> <version>1.1.1</version> <scope>runtime</scope> </dependency> <dependency> <groupId>javax.mail</groupId> <artifactId>mail</artifactId> <version>1.5.0-b01</version> <scope>runtime</scope> </dependency> <dependency> <groupId>javax.mail</groupId> <artifactId>mailapi</artifactId> <version>1.4.3</version> <scope>provided</scope> </dependency>
Cutting Edge Version
If you want to use current version of the product, you can do it with this configuration in your pom.xml:
<repositories> <repository> <id>oss.sonatype.org</id> <url>https://oss.sonatype.org/content/repositories/snapshots/</url> </repository> </repositories> <dependencies> <dependency> <groupId>com.jcabi</groupId> <artifactId>jcabi-email</artifactId> <version>2.0-SNAPSHOT</version> </dependency> </dependencies>