Merge pull request #13363 from timis1/JAVA-17293

JAVA-17293 Update Java Mail articles
This commit is contained in:
Loredana Crusoveanu 2023-01-30 13:08:45 +02:00 committed by GitHub
commit aab7f72429
9 changed files with 85 additions and 75 deletions

View File

@ -25,15 +25,20 @@
<version>${commons-lang3.version}</version> <version>${commons-lang3.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>javax.mail</groupId> <groupId>org.eclipse.angus</groupId>
<artifactId>mail</artifactId> <artifactId>angus-mail</artifactId>
<version>${javax.mail.version}</version> <version>${angus.mail.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.asynchttpclient</groupId> <groupId>org.asynchttpclient</groupId>
<artifactId>async-http-client</artifactId> <artifactId>async-http-client</artifactId>
<version>${async-http-client.version}</version> <version>${async-http-client.version}</version>
</dependency> </dependency>
<dependency>
<groupId>jakarta.xml.bind</groupId>
<artifactId>jakarta.xml.bind-api</artifactId>
<version>${jakarta.bind.version}</version>
</dependency>
<dependency> <dependency>
<groupId>com.icegreen</groupId> <groupId>com.icegreen</groupId>
<artifactId>greenmail</artifactId> <artifactId>greenmail</artifactId>
@ -48,9 +53,10 @@
<properties> <properties>
<httpclient.version>4.5.9</httpclient.version> <httpclient.version>4.5.9</httpclient.version>
<javax.mail.version>1.5.0-b01</javax.mail.version> <angus.mail.version>2.0.1</angus.mail.version>
<async-http-client.version>2.4.5</async-http-client.version> <async-http-client.version>2.4.5</async-http-client.version>
<greenmail.version>1.5.8</greenmail.version> <jakarta.bind.version>2.3.3</jakarta.bind.version>
<greenmail.version>2.0.0-alpha-3</greenmail.version>
</properties> </properties>
</project> </project>

View File

@ -1,19 +1,20 @@
package com.baeldung.mail; package com.baeldung.mail;
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.Multipart;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import java.io.File; import java.io.File;
import java.net.URI; import java.net.URI;
import java.util.Properties; import java.util.Properties;
import jakarta.mail.Authenticator;
import jakarta.mail.Message;
import jakarta.mail.Multipart;
import jakarta.mail.PasswordAuthentication;
import jakarta.mail.Session;
import jakarta.mail.Transport;
import jakarta.mail.internet.InternetAddress;
import jakarta.mail.internet.MimeBodyPart;
import jakarta.mail.internet.MimeMessage;
import jakarta.mail.internet.MimeMultipart;
public class EmailService { public class EmailService {
private String username; private String username;

View File

@ -1,21 +1,23 @@
package com.baeldung.mail.mailwithattachment; package com.baeldung.mail.mailwithattachment;
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.net.URI; import java.net.URI;
import java.util.Properties; import java.util.Properties;
import jakarta.mail.Authenticator;
import jakarta.mail.BodyPart;
import jakarta.mail.Message;
import jakarta.mail.MessagingException;
import jakarta.mail.Multipart;
import jakarta.mail.PasswordAuthentication;
import jakarta.mail.Session;
import jakarta.mail.Transport;
import jakarta.mail.internet.InternetAddress;
import jakarta.mail.internet.MimeBodyPart;
import jakarta.mail.internet.MimeMessage;
import jakarta.mail.internet.MimeMultipart;
public class MailWithAttachmentService { public class MailWithAttachmentService {
private final String username; private final String username;
@ -37,7 +39,7 @@ public class MailWithAttachmentService {
props.put("mail.smtp.host", this.host); props.put("mail.smtp.host", this.host);
props.put("mail.smtp.port", this.port); props.put("mail.smtp.port", this.port);
return Session.getInstance(props, new javax.mail.Authenticator() { return Session.getInstance(props, new Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() { protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password); return new PasswordAuthentication(username, password);
} }

View File

@ -1,10 +1,7 @@
package com.baeldung.download; package com.baeldung.download;
import org.junit.After; import static org.junit.Assert.assertTrue;
import org.junit.BeforeClass;
import org.junit.Test;
import javax.xml.bind.DatatypeConverter;
import java.io.IOException; import java.io.IOException;
import java.net.URISyntaxException; import java.net.URISyntaxException;
import java.nio.file.Files; import java.nio.file.Files;
@ -13,7 +10,11 @@ import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException; import java.security.NoSuchAlgorithmException;
import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutionException;
import static org.junit.Assert.assertTrue; import javax.xml.bind.DatatypeConverter;
import org.junit.After;
import org.junit.BeforeClass;
import org.junit.Test;
public class FileDownloadIntegrationTest { public class FileDownloadIntegrationTest {

View File

@ -1,17 +1,19 @@
package com.baeldung.mail; package com.baeldung.mail;
import com.icegreen.greenmail.junit.GreenMailRule; import static org.junit.Assert.assertEquals;
import com.icegreen.greenmail.util.ServerSetupTest;
import java.io.IOException;
import org.junit.Before; import org.junit.Before;
import org.junit.Rule; import org.junit.Rule;
import org.junit.Test; import org.junit.Test;
import javax.mail.MessagingException; import com.icegreen.greenmail.junit.GreenMailRule;
import javax.mail.internet.MimeMessage; import com.icegreen.greenmail.util.ServerSetupTest;
import javax.mail.internet.MimeMultipart;
import java.io.IOException;
import static org.junit.Assert.assertEquals; import jakarta.mail.MessagingException;
import jakarta.mail.internet.MimeMessage;
import jakarta.mail.internet.MimeMultipart;
public class EmailServiceLiveTest { public class EmailServiceLiveTest {

View File

@ -1,20 +1,20 @@
package com.baeldung.mail.mailwithattachment; package com.baeldung.mail.mailwithattachment;
import static org.junit.Assert.assertEquals;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import com.icegreen.greenmail.configuration.GreenMailConfiguration; import com.icegreen.greenmail.configuration.GreenMailConfiguration;
import com.icegreen.greenmail.junit.GreenMailRule; import com.icegreen.greenmail.junit.GreenMailRule;
import com.icegreen.greenmail.util.GreenMailUtil; import com.icegreen.greenmail.util.GreenMailUtil;
import com.icegreen.greenmail.util.ServerSetupTest; import com.icegreen.greenmail.util.ServerSetupTest;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import javax.annotation.Resource; import jakarta.mail.MessagingException;
import javax.mail.MessagingException; import jakarta.mail.Session;
import javax.mail.Session; import jakarta.mail.internet.MimeMessage;
import javax.mail.internet.MimeMessage; import jakarta.mail.internet.MimeMultipart;
import javax.mail.internet.MimeMultipart;
import static org.junit.Assert.assertEquals;
public class MailWithAttachmentServiceLiveTest { public class MailWithAttachmentServiceLiveTest {
@ -29,7 +29,6 @@ public class MailWithAttachmentServiceLiveTest {
.withUser(USERNAME, PASSWORD) .withUser(USERNAME, PASSWORD)
); );
@Resource
private MailWithAttachmentService emailService; private MailWithAttachmentService emailService;
@Before @Before
@ -73,5 +72,4 @@ public class MailWithAttachmentServiceLiveTest {
return GreenMailUtil.getBody(((MimeMultipart) receivedMessage.getContent()) return GreenMailUtil.getBody(((MimeMultipart) receivedMessage.getContent())
.getBodyPart(2)); .getBodyPart(2));
} }
} }

View File

@ -30,9 +30,9 @@
<version>${tomcat.embeded.version}</version> <version>${tomcat.embeded.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.sun.mail</groupId> <groupId>org.eclipse.angus</groupId>
<artifactId>javax.mail</artifactId> <artifactId>angus-mail</artifactId>
<version>${javax.mail.version}</version> <version>${angus.mail.version}</version>
</dependency> </dependency>
<!-- https://mvnrepository.com/artifact/com.github.seancfoley/ipaddress --> <!-- https://mvnrepository.com/artifact/com.github.seancfoley/ipaddress -->
<dependency> <dependency>
@ -95,7 +95,7 @@
<seancfoley.ipaddress.version>5.3.3</seancfoley.ipaddress.version> <seancfoley.ipaddress.version>5.3.3</seancfoley.ipaddress.version>
<jgonian.commons-ip-math.version>1.32</jgonian.commons-ip-math.version> <jgonian.commons-ip-math.version>1.32</jgonian.commons-ip-math.version>
<googlecode.ipv6.version>0.17</googlecode.ipv6.version> <googlecode.ipv6.version>0.17</googlecode.ipv6.version>
<javax.mail.version>1.6.2</javax.mail.version> <angus.mail.version>2.0.1</angus.mail.version>
<apache.commons-validator.version>1.7</apache.commons-validator.version> <apache.commons-validator.version>1.7</apache.commons-validator.version>
</properties> </properties>

View File

@ -6,16 +6,16 @@ import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Properties; import java.util.Properties;
import javax.mail.Address; import jakarta.mail.Address;
import javax.mail.Folder; import jakarta.mail.Folder;
import javax.mail.Message; import jakarta.mail.Message;
import javax.mail.MessagingException; import jakarta.mail.MessagingException;
import javax.mail.Multipart; import jakarta.mail.Multipart;
import javax.mail.NoSuchProviderException; import jakarta.mail.NoSuchProviderException;
import javax.mail.Part; import jakarta.mail.Part;
import javax.mail.Session; import jakarta.mail.Session;
import javax.mail.Store; import jakarta.mail.Store;
import javax.mail.internet.MimeBodyPart; import jakarta.mail.internet.MimeBodyPart;
public class DownloadEmailAttachments { public class DownloadEmailAttachments {
private String downloadDirectory; private String downloadDirectory;
@ -24,7 +24,7 @@ public class DownloadEmailAttachments {
this.downloadDirectory = dir; this.downloadDirectory = dir;
} }
public void downloadEmailAttachments(String host, String port, String userName, String password) throws NoSuchProviderException, MessagingException, IOException { public void downloadEmailAttachments(String host, String port, String userName, String password) throws MessagingException, IOException {
Properties properties = setMailServerProperties(host, port); Properties properties = setMailServerProperties(host, port);
Store store = setSessionStoreProperties(userName, password, properties); Store store = setSessionStoreProperties(userName, password, properties);
Folder inbox = store.getFolder("INBOX"); Folder inbox = store.getFolder("INBOX");
@ -67,7 +67,7 @@ public class DownloadEmailAttachments {
return downloadedAttachments; return downloadedAttachments;
} }
public Store setSessionStoreProperties(String userName, String password, Properties properties) throws NoSuchProviderException, MessagingException { public Store setSessionStoreProperties(String userName, String password, Properties properties) throws MessagingException {
Session session = Session.getDefaultInstance(properties); Session session = Session.getDefaultInstance(properties);
Store store = session.getStore("pop3"); Store store = session.getStore("pop3");

View File

@ -65,14 +65,14 @@
</exclusions> </exclusions>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.sun.mail</groupId> <groupId>org.eclipse.angus</groupId>
<artifactId>javax.mail</artifactId> <artifactId>angus-mail</artifactId>
<version>${javax.mail.version}</version> <version>${angus.mail.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>javax.activation</groupId> <groupId>org.eclipse.angus</groupId>
<artifactId>javax.activation-api</artifactId> <artifactId>angus-activation</artifactId>
<version>${javax.activation.version}</version> <version>${angus.activation.version}</version>
<scope>runtime</scope> <scope>runtime</scope>
</dependency> </dependency>
</dependencies> </dependencies>
@ -116,8 +116,8 @@
<json.version>20180130</json.version> <json.version>20180130</json.version>
<logback.contrib.version>0.1.5</logback.contrib.version> <logback.contrib.version>0.1.5</logback.contrib.version>
<docx4j.version>3.3.5</docx4j.version> <docx4j.version>3.3.5</docx4j.version>
<javax.mail.version>1.6.2</javax.mail.version> <angus.mail.version>2.0.1</angus.mail.version>
<javax.activation.version>1.2.0</javax.activation.version> <angus.activation.version>2.0.0</angus.activation.version>
<logback.version>1.3.5</logback.version> <logback.version>1.3.5</logback.version>
<slf4j.version>2.0.4</slf4j.version> <slf4j.version>2.0.4</slf4j.version>
</properties> </properties>