import java.util.Properties
import java.security.Security
import javax.mail.URLName
import javax.mail.Session
import javax.mail.Store
import javax.mail.Folder
import javax.mail.search.FlagTerm
import javax.mail.Flags
import javax.mail.Message
import javax.mail.NoSuchProviderException
import javax.mail.AuthenticationFailedException
import javax.mail.MessagingException
import com.sun.net.ssl.internal.ssl.Provider
val props = new Properties
Security.addProvider(new Provider)
props.setProperty("mail.pop3.socketFactory.class","javax.net.ssl.SSLSocketFactory")
props.setProperty("mail.pop3.socketFactory.fallback","false")
val protocol = "pop3s"
val urln = new URLName(protocol,
"pop.gmail.com",
995,
null,
"メールアドレス",
"パスワード")
val session = Session.getDefaultInstance(props,null)
var store:Store = null
var folder:Folder = null
try {
store = session.getStore(urln)
store.connect
folder = store.getFolder("INBOX")
folder.open(Folder.READ_WRITE)
val unread = new FlagTerm(new Flags(Flags.Flag.SEEN), false)
val totalMessages = folder.getMessageCount
val messages:Array[Message] = folder.search(unread)
for (msg <- messages) {
println(msg.getSubject)
msg.setFlag(Flags.Flag.SEEN, true)
}
folder.close(false)
} catch {
case e:NoSuchProviderException => e.printStackTrace
case e:AuthenticationFailedException => e.printStackTrace
case e:MessagingException => e.printStackTrace
} finally {
try {
if (store != null) {
store.close
}
} catch {
case e:MessagingException => e.printStackTrace
}
}