Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
54 changes: 40 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ Example config init:
final MailtrapConfig config = new MailtrapConfig.Builder()
.token("<YOUR MAILTRAP TOKEN>")
.sandbox(true)
.inboxId(123456)
.sandboxId(123456)
.build();
```

Expand All @@ -110,13 +110,13 @@ public class MailtrapJavaSDKSandboxTest {
private static final String TOKEN = "<YOUR MAILTRAP TOKEN>";
private static final String SENDER_EMAIL = "sender@domain.com";
private static final String RECIPIENT_EMAIL = "recipient@domain.com";
private static final long INBOX_ID = 1L;
private static final long SANDBOX_ID = 1L;

public static void main(String[] args) {
final MailtrapConfig config = new MailtrapConfig.Builder()
.token(TOKEN)
.sandbox(true)
.inboxId(INBOX_ID)
.sandboxId(SANDBOX_ID)
.build();

final MailtrapClient client = MailtrapClientFactory.createMailtrapClient(config);
Expand Down Expand Up @@ -163,7 +163,7 @@ public class SwitchSendFromClient {
private static final String TOKEN = "<YOUR MAILTRAP TOKEN>";
private static final String SENDER_EMAIL = "sender@domain.com";
private static final String RECIPIENT_EMAIL = "recipient@domain.com";
private static final long INBOX_ID = 1L;
private static final long SANDBOX_ID = 1L;

public static void main(String[] args) {
// Minimal config init, just token
Expand All @@ -188,7 +188,7 @@ public class SwitchSendFromClient {
client.send(mail);

// Sandbox send
client.switchToEmailTestingApi(INBOX_ID);
client.switchToEmailSandboxApi(SANDBOX_ID);
client.send(mail);
}

Expand Down Expand Up @@ -220,7 +220,7 @@ public class FullFeaturedExample {
public static void main(String[] args) {
final var config = new MailtrapConfig.Builder()
.token(TOKEN)
//by default both `bulk` and `sandbox` are null, `inboxId` is null
//by default both `bulk` and `sandbox` are null, `sandboxId` is null
.build();

final var client = MailtrapClientFactory.createMailtrapClient(config);
Expand Down Expand Up @@ -347,21 +347,21 @@ You can find the [Mailtrap Java API reference](https://mailtrap.github.io/mailtr
- [Error handling](examples/java/io/mailtrap/examples/sending/ErrorsExample.java)
- [Send using template](examples/java/io/mailtrap/examples/sending/TemplateExample.java)
- [Batch](examples/java/io/mailtrap/examples/sending/BatchExample.java)
- [Sending Domains](examples/java/io/mailtrap/examples/sendingdomains/SendingDomainsExample.java)
- [Domains](examples/java/io/mailtrap/examples/domains/DomainsExample.java)
- [Company Info](examples/java/io/mailtrap/examples/companyinfo/CompanyInfoExample.java)
- [Suppressions](examples/java/io/mailtrap/examples/suppressions/SuppressionsExample.java)
- [Tracking Opt-outs](examples/java/io/mailtrap/examples/trackingoptouts/TrackingOptOutsExample.java)
- [Stats](examples/java/io/mailtrap/examples/sending/StatsExample.java)
- [Email Logs](examples/java/io/mailtrap/examples/emaillogs/EmailLogsExample.java)

### Email Testing API
### Email Sandbox API

- [Attachments](examples/java/io/mailtrap/examples/testing/AttachmentsExample.java)
- [Inboxes](examples/java/io/mailtrap/examples/testing/InboxesExample.java)
- [Messages](examples/java/io/mailtrap/examples/testing/MessagesExample.java)
- [Projects](examples/java/io/mailtrap/examples/testing/ProjectsExample.java)
- [Sandbox send using template](examples/java/io/mailtrap/examples/testing/EmailExample.java)
- [Batch](examples/java/io/mailtrap/examples/testing/BatchExample.java)
- [Attachments](examples/java/io/mailtrap/examples/sandbox/AttachmentsExample.java)
- [Sandboxes](examples/java/io/mailtrap/examples/sandbox/SandboxesExample.java)
- [Messages](examples/java/io/mailtrap/examples/sandbox/MessagesExample.java)
- [Projects](examples/java/io/mailtrap/examples/sandbox/ProjectsExample.java)
- [Sandbox send using template](examples/java/io/mailtrap/examples/sandbox/EmailExample.java)
- [Batch](examples/java/io/mailtrap/examples/sandbox/BatchExample.java)

### Inbound Email API

Expand Down Expand Up @@ -394,6 +394,32 @@ You can find the [Mailtrap Java API reference](https://mailtrap.github.io/mailtr
- [Email Campaigns](examples/java/io/mailtrap/examples/emailcampaigns/EmailCampaignsExample.java)
- [Marketing Stats](examples/java/io/mailtrap/examples/marketingstats/MarketingStatsExample.java)

### Renamed APIs

The SDK now uses the product's names: Email Testing inboxes are **sandboxes** and sending domains are **domains**. The old
entry points still work and call the same endpoints, but they are marked `@Deprecated(since = "1.11.0")` and will be
removed in a future major release. Types such as `MailtrapEmailTestingApi`, `Inboxes`, `InboxResponse`, `SendingDomains`
and `SendingDomainsResponse` keep their names until that release.

| Old | New |
|-----|-----|
| `client.testingApi()` | `client.sandboxApi()` |
| `client.switchToEmailTestingApi(inboxId)` | `client.switchToEmailSandboxApi(sandboxId)` |
| `new MailtrapConfig.Builder().inboxId(id)` | `new MailtrapConfig.Builder().sandboxId(id)` |
| `config.getInboxId()` | `config.getSandboxId()` |
| `Constants.EMAIL_TESTING_SEND_HOST` | `Constants.EMAIL_SANDBOX_SEND_HOST` |
| `sandboxApi().inboxes()` | `sandboxApi().sandboxes()` |
| `createInbox(accountId, projectId, request)` | `createSandbox(accountId, projectId, request)` |
| `getInboxAttributes(accountId, inboxId)` | `getSandboxAttributes(accountId, sandboxId)` |
| `updateInbox(accountId, inboxId, request)` | `updateSandbox(accountId, sandboxId, request)` |
| `deleteInbox(accountId, inboxId)` | `deleteSandbox(accountId, sandboxId)` |
| `cleanInbox(accountId, inboxId)` | `cleanSandbox(accountId, sandboxId)` |
| `getInboxes(accountId)` | `getSandboxes(accountId)` |
| `sendingApi().domains().getSendingDomains(accountId)` | `sendingApi().domains().getDomains(accountId)` |
| `getSendingDomain(accountId, sendingDomainId)` | `getDomain(accountId, domainId)` |
| `sendSendingDomainsSetupInstructions(accountId, sendingDomainId, request)` | `sendDomainSetupInstructions(accountId, domainId, request)` |
Comment thread
coderabbitai[bot] marked this conversation as resolved.
Resolved
| `deleteSendingDomain(accountId, sendingDomainId)` | `deleteDomain(accountId, domainId)` |

## Contributing

Bug reports and pull requests are welcome on [GitHub](https://github.com/mailtrap/mailtrap-java). This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [code of conduct](CODE_OF_CONDUCT.md).
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package io.mailtrap.examples.sendingdomains;
package io.mailtrap.examples.domains;

import io.mailtrap.config.MailtrapConfig;
import io.mailtrap.factory.MailtrapClientFactory;
Expand All @@ -8,7 +8,7 @@

import static io.mailtrap.model.request.sendingdomains.CreateSendingDomainRequest.SendingDomainData;

public class SendingDomainsExample {
public class DomainsExample {

private static final String TOKEN = System.getenv("MAILTRAP_API_KEY");
private static final long ACCOUNT_ID = Long.parseLong(System.getenv("MAILTRAP_ACCOUNT_ID"));
Expand All @@ -27,10 +27,10 @@ public static void main(String[] args) {
final var createdDomain = client.sendingApi().domains().create(ACCOUNT_ID, createRequest);
System.out.println(createdDomain);

final var domainById = client.sendingApi().domains().getSendingDomain(ACCOUNT_ID, createdDomain.getId());
final var domainById = client.sendingApi().domains().getDomain(ACCOUNT_ID, createdDomain.getId());
System.out.println(domainById);

final var allDomains = client.sendingApi().domains().getSendingDomains(ACCOUNT_ID);
final var allDomains = client.sendingApi().domains().getDomains(ACCOUNT_ID);
System.out.println(allDomains);

final var updateRequest = new UpdateSendingDomainRequest(
Expand All @@ -46,8 +46,8 @@ public static void main(String[] args) {
System.out.println(updatedDomain);

final var sendInstructionsRequest = new SendingDomainsSetupInstructionsRequest(DEVOPS_EMAIL);
client.sendingApi().domains().sendSendingDomainsSetupInstructions(ACCOUNT_ID, createdDomain.getId(), sendInstructionsRequest);
client.sendingApi().domains().sendDomainSetupInstructions(ACCOUNT_ID, createdDomain.getId(), sendInstructionsRequest);

client.sendingApi().domains().deleteSendingDomain(ACCOUNT_ID, createdDomain.getId());
client.sendingApi().domains().deleteDomain(ACCOUNT_ID, createdDomain.getId());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ public class AccountAccessExample {

private static final String TOKEN = System.getenv("MAILTRAP_API_KEY");
private static final long ACCOUNT_ID = Long.parseLong(System.getenv("MAILTRAP_ACCOUNT_ID"));
private static final String INBOX_ID = System.getenv("MAILTRAP_INBOX_ID");
private static final String SANDBOX_ID = System.getenv("MAILTRAP_SANDBOX_ID");

public static void main(String[] args) {
final var config = new MailtrapConfig.Builder()
Expand All @@ -20,7 +20,7 @@ public static void main(String[] args) {
final var client = MailtrapClientFactory.createMailtrapClient(config);

final var queryParams = new ListAccountAccessQueryParams();
queryParams.setInboxIds(List.of(INBOX_ID));
queryParams.setInboxIds(List.of(SANDBOX_ID));

final var responses = client.generalApi().accountAccesses().listUserAndInviteAccountAccesses(ACCOUNT_ID, queryParams);

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package io.mailtrap.examples.testing;
package io.mailtrap.examples.sandbox;

import io.mailtrap.config.MailtrapConfig;
import io.mailtrap.factory.MailtrapClientFactory;
Expand All @@ -14,24 +14,24 @@ public static void main(String[] args) {
.token(TOKEN)
.build();

final var testingClient = MailtrapClientFactory.createMailtrapClient(config).testingApi();
final var sandboxClient = MailtrapClientFactory.createMailtrapClient(config).sandboxApi();

final var inboxes = testingClient.inboxes().getInboxes(ACCOUNT_ID);
final var sandboxes = sandboxClient.sandboxes().getSandboxes(ACCOUNT_ID);

if (!inboxes.isEmpty()) {
final var firstInbox = inboxes.get(0);
if (!sandboxes.isEmpty()) {
final var firstSandbox = sandboxes.get(0);

final var messages = testingClient.messages().getMessages(ACCOUNT_ID, firstInbox.getId(), ListMessagesQueryParams.empty());
final var messages = sandboxClient.messages().getMessages(ACCOUNT_ID, firstSandbox.getId(), ListMessagesQueryParams.empty());

if (!messages.isEmpty()) {
final var firstMessage = messages.get(0);

final var attachments = testingClient.attachments().getAttachments(ACCOUNT_ID, firstInbox.getId(), firstMessage.getId(), null);
final var attachments = sandboxClient.attachments().getAttachments(ACCOUNT_ID, firstSandbox.getId(), firstMessage.getId(), null);

if (!attachments.isEmpty()) {
final var firstAttachment = attachments.get(0);

System.out.println(testingClient.attachments().getSingleAttachment(ACCOUNT_ID, firstInbox.getId(), firstMessage.getId(), firstAttachment.getId()));
System.out.println(sandboxClient.attachments().getSingleAttachment(ACCOUNT_ID, firstSandbox.getId(), firstMessage.getId(), firstAttachment.getId()));
}
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package io.mailtrap.examples.testing;
package io.mailtrap.examples.sandbox;

import io.mailtrap.config.MailtrapConfig;
import io.mailtrap.factory.MailtrapClientFactory;
Expand All @@ -15,12 +15,12 @@ public class BatchExample {
private static final String TOKEN = System.getenv("MAILTRAP_API_KEY");
private static final String SENDER_EMAIL = "sender@domain.com";
private static final String RECIPIENT_EMAIL = "recipient@domain.com";
private static final long INBOX_ID = Long.parseLong(System.getenv("MAILTRAP_INBOX_ID"));
private static final long SANDBOX_ID = Long.parseLong(System.getenv("MAILTRAP_SANDBOX_ID"));

public static void main(String[] args) {
final var config = new MailtrapConfig.Builder()
.token(TOKEN)
.inboxId(INBOX_ID)
.sandboxId(SANDBOX_ID)
.build();

final var client = MailtrapClientFactory.createMailtrapClient(config);
Expand All @@ -42,7 +42,7 @@ public static void main(String[] args) {
.requests(List.of(mail))
.build();

System.out.println(client.testingApi().emails().batchSend(batchMail, config.getInboxId()));
System.out.println(client.sandboxApi().emails().batchSend(batchMail, config.getSandboxId()));
}

}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package io.mailtrap.examples.testing;
package io.mailtrap.examples.sandbox;

import io.mailtrap.config.MailtrapConfig;
import io.mailtrap.factory.MailtrapClientFactory;
Expand All @@ -13,12 +13,12 @@ public class EmailExample {
private static final String TOKEN = System.getenv("MAILTRAP_API_KEY");
private static final String SENDER_EMAIL = "sender@domain.com";
private static final String RECIPIENT_EMAIL = "recipient@domain.com";
private static final long INBOX_ID = Long.parseLong(System.getenv("MAILTRAP_INBOX_ID"));
private static final long SANDBOX_ID = Long.parseLong(System.getenv("MAILTRAP_SANDBOX_ID"));

public static void main(String[] args) {
final var config = new MailtrapConfig.Builder()
.token(TOKEN)
.inboxId(INBOX_ID)
.sandboxId(SANDBOX_ID)
.build();

final var client = MailtrapClientFactory.createMailtrapClient(config);
Expand All @@ -33,7 +33,7 @@ public static void main(String[] args) {
))
.build();

System.out.println(client.testingApi().emails().send(mail, config.getInboxId()));
System.out.println(client.sandboxApi().emails().send(mail, config.getSandboxId()));
}

}
67 changes: 67 additions & 0 deletions examples/java/io/mailtrap/examples/sandbox/MessagesExample.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
package io.mailtrap.examples.sandbox;

import io.mailtrap.config.MailtrapConfig;
import io.mailtrap.factory.MailtrapClientFactory;
import io.mailtrap.model.request.accountaccesses.ListMessagesQueryParams;
import io.mailtrap.model.request.messages.ForwardMessageRequest;
import io.mailtrap.model.request.messages.UpdateMessageRequest;

public class MessagesExample {

private static final String TOKEN = System.getenv("MAILTRAP_API_KEY");
private static final String FORWARD_EMAIL_TO = "recipient@domain.com";
private static final long ACCOUNT_ID = Long.parseLong(System.getenv("MAILTRAP_ACCOUNT_ID"));

public static void main(String[] args) {
final var config = new MailtrapConfig.Builder()
.token(TOKEN)
.build();

final var sandboxClient = MailtrapClientFactory.createMailtrapClient(config).sandboxApi();

final var sandboxes = sandboxClient.sandboxes().getSandboxes(ACCOUNT_ID);

if (!sandboxes.isEmpty()) {
long firstSandboxId = sandboxes.get(0).getId();

final var messages = sandboxClient.messages().getMessages(ACCOUNT_ID, firstSandboxId, ListMessagesQueryParams.empty());

if (!messages.isEmpty()) {
long firstMessageId = messages.get(0).getId();

final var getMessage = sandboxClient.messages().getMessage(ACCOUNT_ID, firstSandboxId, firstMessageId);
System.out.println(getMessage);

final var htmlAnalysis = sandboxClient.messages().getMessageHtmlAnalysis(ACCOUNT_ID, firstSandboxId, firstMessageId);
System.out.println(htmlAnalysis);

String htmlMessage = sandboxClient.messages().getHtmlMessage(ACCOUNT_ID, firstSandboxId, firstMessageId);
System.out.println(htmlMessage);

String textMessage = sandboxClient.messages().getTextMessage(ACCOUNT_ID, firstSandboxId, firstMessageId);
System.out.println(textMessage);

String rawMessage = sandboxClient.messages().getRawMessage(ACCOUNT_ID, firstSandboxId, firstMessageId);
System.out.println(rawMessage);

String messageAsEml = sandboxClient.messages().getMessageAsEml(ACCOUNT_ID, firstSandboxId, firstMessageId);
System.out.println(messageAsEml);

String messageSource = sandboxClient.messages().getMessageSource(ACCOUNT_ID, firstSandboxId, firstMessageId);
System.out.println(messageSource);

final var mailHeaders = sandboxClient.messages().getMailHeaders(ACCOUNT_ID, firstSandboxId, firstMessageId);
System.out.println(mailHeaders);

final var spamScore = sandboxClient.messages().getSpamScore(ACCOUNT_ID, firstSandboxId, firstMessageId);
System.out.println(spamScore);

final var updateMessage = sandboxClient.messages().updateMessage(ACCOUNT_ID, firstSandboxId, firstMessageId, new UpdateMessageRequest(new UpdateMessageRequest.MessageUpdateData("true")));
System.out.println(updateMessage);

final var forwardMessage = sandboxClient.messages().forwardMessage(ACCOUNT_ID, firstSandboxId, firstMessageId, new ForwardMessageRequest(FORWARD_EMAIL_TO));
System.out.println(forwardMessage);
}
}
}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package io.mailtrap.examples.testing;
package io.mailtrap.examples.sandbox;

import io.mailtrap.config.MailtrapConfig;
import io.mailtrap.factory.MailtrapClientFactory;
Expand All @@ -14,18 +14,18 @@ public static void main(String[] args) {
.token(TOKEN)
.build();

final var testingClient = MailtrapClientFactory.createMailtrapClient(config).testingApi();
final var sandboxClient = MailtrapClientFactory.createMailtrapClient(config).sandboxApi();

final var projects = testingClient.projects().getProjects(ACCOUNT_ID);
final var projects = sandboxClient.projects().getProjects(ACCOUNT_ID);

if (!projects.isEmpty()) {
long firstProjectId = projects.get(0).getId();

final var updatedProject =
testingClient.projects().updateProject(ACCOUNT_ID, firstProjectId, new ProjectRequest(new ProjectRequest.ProjectData("mock project")));
sandboxClient.projects().updateProject(ACCOUNT_ID, firstProjectId, new ProjectRequest(new ProjectRequest.ProjectData("mock project")));
System.out.println(updatedProject);

final var deletedProject = testingClient.projects().deleteProject(ACCOUNT_ID, firstProjectId);
final var deletedProject = sandboxClient.projects().deleteProject(ACCOUNT_ID, firstProjectId);
System.out.println(deletedProject);
}
}
Expand Down
Loading
Loading