問題を解決するために多くの時間を費やした後、解決策が見つかりませんでした。一般的に問題は次のとおりです。 プロジェクトで作業するための招待状を送ることができるWebアプリケーションがあります。標準的なフォームには、送信される電子メールを含むデータが入っています。したがって、この機能を自動テストするためのタスクです。当初、私は新しいインスタント・ブラウザを開くための招待状を送った後、セレンの上ですべてそれをすると思っていました。郵便サービスに行き、招待状を送り、手紙の検索と発見を操作し、招待し、ボタン。私はそれが少しtugovatoのプロセスであることを理解し、メッセージを受信するためにJavaMailライブラリを使用することが彼らの問題の解決策であることがわかりました。つまり、この例ではメールサービスに接続するためにGmailを使用し、そこからすべての文字を取得します。どのように電子メールを解析し、メールJavaMailからハイパーリンクを取得するのですか?
import java.util.Properties;
public class PropertiesEmail {
String host = "imap.gmail.com";
String user = "userEmail";
String password = "password";
int port = 993;
public Properties setServerProperties(){
Properties properties = new Properties();
properties.put("mail.imap.host", host);
properties.put("mail.imap.port", port);
properties.put("mail.imap.starttls.enable", "true");
properties.put("mail.store.protocol", "imaps");
return properties;
}
}
import javax.mail.*;
import javax.mail.search.FlagTerm;
import java.util.Properties;
public class CheckUnreadEmail {
public static void checkUnreadEmail(){
try{
//Create object email properties
PropertiesEmail propertiesEmail = new PropertiesEmail();
//Set email server properties
Properties props = propertiesEmail.setServerProperties();
Session session = Session.getDefaultInstance(props);
Store store = session.getStore();
store.connect(propertiesEmail.host, propertiesEmail.user, propertiesEmail.password);
//Create the folder object and open it
Folder folder = store.getFolder("INBOX");
folder.open(Folder.READ_WRITE);
//Total unread messages
System.out.println("Total messages: " + folder.getMessageCount());
System.out.println("Unread messages: " + folder.getUnreadMessageCount());
//Create variable for search unread message
FlagTerm flag = new FlagTerm(new Flags(Flags.Flag.SEEN), false);
//Retrieve all messages
//Message [] messages = folder.getMessages();
//Retrieve unread messages from the folder INBOX
Message [] unreadMessage = folder.search(flag);
for (int i = 0, n = unreadMessage.length; i < n; i++){
Message message = unreadMessage[i];
System.out.println("--------------");
System.out.println("Subject: " + message.getSubject());
}
//folder.setFlags(unreadMessage, new Flags(Flags.Flag.SEEN), true);
//close the store and folder objects
folder.close(false);
store.close();
}catch(Exception e){
e.printStackTrace();
}
}
}
いくつかの質問があります。 1.メールで新しい文字を待つためにどのように? (以来、電子メールの招待状は一度に来ません) 2.手紙を受け取ってパースし、招待状へのハイパーリンクを取得する方法は?