Да, я сделал это.
После того, как вы отправите OTP из приложения. Вы должны использовать javax.mail
и написать код, чтобы прочитать письмо из почтового ящика для указанного emailid. а затем извлеките OTP с помощью подходящего регулярного выражения из содержимого, которое вы получаете.
Сначала добавьте эти зависимости, если вы используете проект Maven, в противном случае вам нужно добавить те же библиотеки в ваш проект
<!-- https://mvnrepository.com/artifact/javax.mail/mail -->
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4</version>
</dependency>
Создайте один класс и используйте этот код:
String hostName = "smtp.gmail.com";
String username = "email username"
String password = "email passeord"
int messageCount;
int unreadMsgCount;
String emailSubject;
Message emailMessage;
public MailReader() {
Properties sysProps = System.getProperties();
sysProps.setProperty("mail.store.protocol", "imaps");
try {
Session session = Session.getInstance(sysProps, null);
Store store = session.getStore();
store.connect(hostName, username, password);
Folder emailInbox = store.getFolder("INBOX");
emailInbox.open(Folder.READ_WRITE);
messageCount = emailInbox.getMessageCount();
System.out.println("Total Message Count: " + messageCount);
unreadMsgCount = emailInbox.getNewMessageCount();
System.out.println("Unread Emails count:" + unreadMsgCount);
emailMessage = emailInbox.getMessage(messageCount);
emailSubject = emailMessage.getSubject();
Pattern linkPattern = Pattern.compile("href=\"(.*)\" target"); // here you need to define regex as per you need
Matcher pageMatcher =
linkPattern.matcher(emailMessage.getContent().toString());
while (pageMatcher.find()) {
System.out.println("Found OTP " + pageMatcher.group(1));
}
emailMessage.setFlag(Flags.Flag.SEEN, true);
emailInbox.close(true);
store.close();
} catch (Exception mex) {
mex.printStackTrace();
}
}