我只是在开发一个从Gmail读取电子邮件并进行进一步处理的电子邮件程序。最初使用 SO 中提供的代码(下面提供的链接)我收到一个异常,提示“我的访问已被阻止,我需要通过 Web 浏览器登录”。
同时,我在收件箱(我正在尝试连接)中看到一封电子邮件,上面写着“谷歌帐户:登录尝试被阻止”,我需要通过以下链接禁用现代安全性“ https://www.google .com/settings/security/lesssecureapps ”。
我尝试禁用并成功连接。
那么这是否意味着这Javamail是一个不太安全的应用程序?或者有什么方法可以在不禁用该选项的情况下仍然连接?
提前致谢。加里
下面的代码使用javamail API来访问gmail,
String host = "pop.gmail.com";
int port = 995;
Properties properties = new Properties();
properties.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
final javax.mail.Session session = javax.mail.Session.getInstance(properties);
store = session.getStore("pop3s");
store.connect(host, port, mCredentialaNme, mCredentialApss);
// ***************************************************************
Folder personalFolders[] = store.getDefaultFolder().list( "*" );
// ***************************************************************
for (Folder object : personalFolders) {
// ***********************************
System.out.println( object.list("*") );
// ***********************************
if ((object.getType() & javax.mail.Folder.HOLDS_MESSAGES) != 0){
object.open(Folder.READ_ONLY);
Message messes[] = object.getMessages();
System.out.println(object.getFullName());
System.out.println("====================");
for (Message object1 : messes) {
System.out.println(object1.getFrom() + " - " + object1.getSubject());
}
object.close(false); …Run Code Online (Sandbox Code Playgroud)