Skip to content

Commit d1bd3db

Browse files
committed
Release 2.4.0
1 parent 6408767 commit d1bd3db

8 files changed

Lines changed: 31 additions & 17 deletions

File tree

CHANGELOG.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,14 @@ All _notable_ changes to this project will be documented in this file.
55
The format is based on _[Keep a Changelog][keepachangelog]_, and this project
66
adheres to _[Semantic Versioning][semver]_.
77

8+
## [2.4.0] (released: 2026-02-24)
9+
### Updated
10+
- Updated Message API
11+
- Updated Domains API
12+
- Updated Domains Key API
13+
- Updated Domain Tracking API
14+
- Added DKIM Security API
15+
816
## [2.3.0] (released: 2026-01-24)
917
### Updated
1018
- Added deliver within header
@@ -109,6 +117,7 @@ adheres to _[Semantic Versioning][semver]_.
109117
- Import a list of complaints from CSV file API
110118
- Add Import a list of bounces from CSV file API
111119

120+
[2.4]: https://github.com/mailgun/mailgun-java/compare/v2.3.0...v2.4.0
112121
[2.3.0]: https://github.com/mailgun/mailgun-java/compare/v2.2.1...v2.3.0
113122
[2.2.1]: https://github.com/mailgun/mailgun-java/compare/v2.1.1...v2.2.1
114123
[2.1.1]: https://github.com/mailgun/mailgun-java/compare/v2.1.0...v2.1.1

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ Add the following to your `pom.xml`:
7676
<dependency>
7777
<groupId>com.mailgun</groupId>
7878
<artifactId>mailgun-java</artifactId>
79-
<version>2.3.0</version>
79+
<version>2.4.0</version>
8080
</dependency>
8181
...
8282
</dependencies>
@@ -85,7 +85,7 @@ Add the following to your `pom.xml`:
8585
Gradle Groovy DSL .
8686

8787
```xml
88-
implementation 'com.mailgun:mailgun-java:2.3.0'
88+
implementation 'com.mailgun:mailgun-java:2.4.0'
8989
```
9090

9191

pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
<groupId>com.mailgun</groupId>
88
<artifactId>mailgun-java</artifactId>
9-
<version>2.3.0</version>
9+
<version>2.4.0</version>
1010
<packaging>jar</packaging>
1111

1212
<name>${project.groupId}:${project.artifactId}</name>
@@ -299,7 +299,7 @@
299299
<plugin>
300300
<groupId>org.apache.maven.plugins</groupId>
301301
<artifactId>maven-source-plugin</artifactId>
302-
<version>2.3.0</version>
302+
<version>3.3.1</version>
303303
<executions>
304304
<execution>
305305
<id>attach-sources</id>

src/main/java/com/mailgun/api/v3/MailgunMessagesApi.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
* @see <a href="https://documentation.mailgun.com/docs/mailgun/api-reference/send/mailgun/messages/post-v3--domain-name--messages">Send an email</a>
2525
* @see <a href="https://documentation.mailgun.com/docs/mailgun/api-reference/send/mailgun/messages/post-v3--domain-name--messages-mime">Send an email in MIME format</a>
2626
*/
27-
@Headers({"Content-Type: multipart/form-data", "Accept: application/json"})
27+
@Headers("Accept: application/json")
2828
public interface MailgunMessagesApi extends MailgunApi {
2929

3030
/**
@@ -36,6 +36,7 @@ public interface MailgunMessagesApi extends MailgunApi {
3636
* @param message {@link Message}
3737
* @return {@link MessageResponse}
3838
*/
39+
@Headers("Content-Type: multipart/form-data")
3940
@RequestLine("POST /{domain}/messages")
4041
MessageResponse sendMessage(@Param("domain") String domain, Message message);
4142

@@ -48,6 +49,7 @@ public interface MailgunMessagesApi extends MailgunApi {
4849
* @param message {@link Message}
4950
* @return {@link Response}
5051
*/
52+
@Headers("Content-Type: multipart/form-data")
5153
@RequestLine("POST /{domain}/messages")
5254
Response sendMessageFeignResponse(@Param("domain") String domain, Message message);
5355

@@ -66,6 +68,7 @@ public interface MailgunMessagesApi extends MailgunApi {
6668
* @param message {@link Message}
6769
* @return {@link CompletableFuture} wrapped {@link MessageResponse}
6870
*/
71+
@Headers("Content-Type: multipart/form-data")
6972
@RequestLine("POST /{domain}/messages")
7073
CompletableFuture<MessageResponse> sendMessageAsync(@Param("domain") String domain, Message message);
7174

@@ -84,6 +87,7 @@ public interface MailgunMessagesApi extends MailgunApi {
8487
* @param message {@link Message}
8588
* @return {@link CompletableFuture} wrapped {@link Response}
8689
*/
90+
@Headers("Content-Type: multipart/form-data")
8791
@RequestLine("POST /{domain}/messages")
8892
CompletableFuture<Response> sendMessageFeignResponseAsync(@Param("domain") String domain, Message message);
8993

@@ -96,6 +100,7 @@ public interface MailgunMessagesApi extends MailgunApi {
96100
* @param message {@link MailgunMimeMessage}
97101
* @return {@link MessageResponse}
98102
*/
103+
@Headers("Content-Type: multipart/form-data")
99104
@RequestLine("POST /{domain}/messages.mime")
100105
MessageResponse sendMIMEMessage(@Param("domain") String domain, MailgunMimeMessage message);
101106

@@ -108,6 +113,7 @@ public interface MailgunMessagesApi extends MailgunApi {
108113
* @param message {@link MailgunMimeMessage}
109114
* @return {@link Response}
110115
*/
116+
@Headers("Content-Type: multipart/form-data")
111117
@RequestLine("POST /{domain}/messages.mime")
112118
Response sendMIMEMessageFeignResponse(@Param("domain") String domain, MailgunMimeMessage message);
113119

@@ -126,6 +132,7 @@ public interface MailgunMessagesApi extends MailgunApi {
126132
* @param message {@link MailgunMimeMessage}
127133
* @return {@link CompletableFuture} wrapped {@link MessageResponse}
128134
*/
135+
@Headers("Content-Type: multipart/form-data")
129136
@RequestLine("POST /{domain}/messages.mime")
130137
CompletableFuture<MessageResponse> sendMIMEMessageAsync(@Param("domain") String domain, MailgunMimeMessage message);
131138

@@ -144,6 +151,7 @@ public interface MailgunMessagesApi extends MailgunApi {
144151
* @param message {@link MailgunMimeMessage}
145152
* @return {@link CompletableFuture} wrapped {@link Response}
146153
*/
154+
@Headers("Content-Type: multipart/form-data")
147155
@RequestLine("POST /{domain}/messages.mime")
148156
CompletableFuture<Response> sendMIMEMessageFeignResponseAsync(@Param("domain") String domain, MailgunMimeMessage message);
149157

src/test/java/com/mailgun/api/v2/MailgunTrackingCertificateApiTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ void getCertificateStatusSuccessTest() {
3838

3939
assertNotNull(result);
4040
assertEquals("active", result.getStatus());
41-
assertEquals("-----BEGIN CERTIFICATE-----\\n...", result.getCertificate());
41+
assertEquals("-----BEGIN CERTIFICATE-----\n...", result.getCertificate());
4242
}
4343

4444
@Test

src/test/java/com/mailgun/api/v3/MailgunMessagesApiTest.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
import static com.github.tomakehurst.wiremock.client.WireMock.get;
2222
import static com.github.tomakehurst.wiremock.client.WireMock.post;
2323
import static com.github.tomakehurst.wiremock.client.WireMock.stubFor;
24-
import static com.github.tomakehurst.wiremock.client.WireMock.urlEqualTo;
24+
import static com.github.tomakehurst.wiremock.client.WireMock.urlPathEqualTo;
2525
import static com.mailgun.constants.TestConstants.EMAIL_RESPONSE_ID;
2626
import static com.mailgun.constants.TestConstants.EMAIL_RESPONSE_MESSAGE;
2727
import static com.mailgun.constants.TestConstants.TEST_API_KEY;
@@ -46,7 +46,7 @@ void setUp() {
4646

4747
@Test
4848
void sendMessageWithDomainSuccessTest() {
49-
stubFor(post(urlEqualTo("/" + MailgunApi.getApiVersion().getValue() + "/" + TEST_DOMAIN + "/messages"))
49+
stubFor(post(urlPathEqualTo("/" + MailgunApi.getApiVersion().getValue() + "/" + TEST_DOMAIN + "/messages"))
5050
.withHeader("Authorization", equalTo(TestHeadersUtils.getExpectedAuthHeader()))
5151
.withHeader("Content-Type",
5252
containing("multipart/form-data"))
@@ -73,7 +73,7 @@ void sendMessageWithDomainSuccessTest() {
7373
@Test
7474
void getSendingQueuesSuccessTest() {
7575
String body = "{\"regular\":{\"is_disabled\":false},\"scheduled\":{\"is_disabled\":true,\"disabled\":{\"until\":\"Fri, 14 Oct 2011 12:00:00 +0000\",\"reason\":\"Maintenance\"}}}}";
76-
stubFor(get(urlEqualTo("/" + MailgunApi.getApiVersion().getValue() + "/domains/" + TEST_DOMAIN + "/sending_queues"))
76+
stubFor(get(urlPathEqualTo("/" + MailgunApi.getApiVersion().getValue() + "/domains/" + TEST_DOMAIN + "/sending_queues"))
7777
.withHeader("Authorization", equalTo(TestHeadersUtils.getExpectedAuthHeader()))
7878
.withHeader("Accept", equalTo("application/json"))
7979
.willReturn(aResponse()
@@ -98,7 +98,7 @@ void getSendingQueuesSuccessTest() {
9898
@Test
9999
void deleteEnvelopesSuccessTest() {
100100
String body = "{\"message\":\"Queued messages deleted\"}";
101-
stubFor(delete(urlEqualTo("/" + MailgunApi.getApiVersion().getValue() + "/" + TEST_DOMAIN + "/envelopes"))
101+
stubFor(delete(urlPathEqualTo("/" + MailgunApi.getApiVersion().getValue() + "/" + TEST_DOMAIN + "/envelopes"))
102102
.withHeader("Authorization", equalTo(TestHeadersUtils.getExpectedAuthHeader()))
103103
.withHeader("Accept", equalTo("application/json"))
104104
.willReturn(aResponse()

src/test/java/com/mailgun/api/v4/MailgunDomainKeysApiTest.java

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,7 @@
88
import org.junit.jupiter.api.BeforeEach;
99
import org.junit.jupiter.api.Test;
1010

11-
import static com.github.tomakehurst.wiremock.client.WireMock.aResponse;
12-
import static com.github.tomakehurst.wiremock.client.WireMock.get;
13-
import static com.github.tomakehurst.wiremock.client.WireMock.put;
14-
import static com.github.tomakehurst.wiremock.client.WireMock.stubFor;
15-
import static com.github.tomakehurst.wiremock.client.WireMock.urlPathEqualTo;
11+
import static com.github.tomakehurst.wiremock.client.WireMock.*;
1612
import static com.mailgun.constants.TestConstants.TEST_API_KEY;
1713
import static com.mailgun.constants.TestConstants.TEST_DOMAIN;
1814
import static org.junit.jupiter.api.Assertions.assertEquals;

src/test/java/com/mailgun/api/v4/MailgunDomainsApiTest.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import com.mailgun.model.domains.Domain;
66
import com.mailgun.model.domains.DomainListResponse;
77
import com.mailgun.model.domains.DomainResponse;
8+
import com.mailgun.enums.DomainState;
89
import com.mailgun.model.domains.DomainUpdateRequest;
910
import com.mailgun.model.domains.DomainsParametersFilter;
1011
import com.mailgun.model.domains.SingleDomainResponse;
@@ -53,7 +54,7 @@ void getDomainsListSuccessTest() {
5354
Domain domain = result.getItems().get(0);
5455
assertEquals("id1", domain.getId());
5556
assertEquals("example.com", domain.getName());
56-
assertEquals("active", domain.getState());
57+
assertEquals(DomainState.ACTIVE, domain.getState());
5758
}
5859

5960
@Test
@@ -67,7 +68,7 @@ void getDomainsListWithFilterSuccessTest() {
6768
.withBody(body)));
6869

6970
DomainsParametersFilter filter = DomainsParametersFilter.builder()
70-
.state(com.mailgun.enums.DomainState.ACTIVE)
71+
.state(DomainState.ACTIVE)
7172
.limit(100)
7273
.search("test")
7374
.includeSubaccounts(true)

0 commit comments

Comments
 (0)