# SMTP Mailer

### KSMTPMailer Class Overview

* **MIME Multipart Message Creation**\
  Easily create MIME multipart messages with support for text, HTML content, and file attachments.
* **Secure and Non-Secure Connections**\
  Supports STARTTLS/TLS (default) for secure communication and non-secured connections when required.
* **Authentication Options**\
  Compatible with both OAuth 2.0 and basic authentication for flexible access to SMTP servers.
* **Automatic MX Record Lookup**\
  If the SMTP host is not specified, automatically queries DNS for the highest-priority MX record.
* **Enhanced Mail Header**\
  Automatically includes the `X-Mailer` header to identify the sending application.

{% hint style="info" %}
For servers requiring OAuth 2.0 authentication, leverage the [Simple OAuth 2.0 Framework for Authentication](https://sofa.k43.ch) (Freeware) to obtain access tokens efficiently and securely.
{% endhint %}

### Prerequisites

The *KSMTPMailer* class requires the following Jakarta/Angus Mail jar files:

* angus-activation-2.0.x.jar
* angus-mail-2.0.x.jar
* jakarta.activation-api-2.1.x.jar
* jakarta.mail-api-2.1.x.jar

If you do not already have these jar files, you may download them here. Just place the files in a directory pointed to by the JVM class path.

{% file src="<https://1523050323-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnLy540wu2J4F0Txdp4tM%2Fuploads%2FAfbOjGumIDno0RMezNaM%2FJakarta-Angus-Mail.zip?alt=media&token=5ae8ac6f-1d26-4996-b255-ff58747bc492>" %}

### Example

```java
KSMTPMailer mailer = new KSMTPMailer();

mailer.setFrom("john.doe@acme.com");
mailer.setTo("bob.smith@hotmail.com");
mailer.setSubject("Subject");
mailer.addHTML("<h1>Your requested files</h1>");
mailer.addText("Body Text");
mailer.addFile("test1.txt");
mailer.addFile("test2.txt");
mailer.addText("Regards, John");
mailer.send();
```
