我尝试通过java邮件通过“imap”访问某个电子邮件服务器上的电子邮件帐户。我对此做了一些研究。我发现以下代码适用于gmail。
import java.io.*;
import javax.mail.*;
import javax.mail.internet.*;
public class DeleteMessageExample {
public static void main (String args[]) throws Exception {
String host = args[0];
String username = args[1];
String password = args[2];
// Get session
Session session = Session.getInstance(
System.getProperties(), null);
// Get the store
Store store = session.getStore("imaps");
store.connect(host, username, password);
// Get folder
Folder folder = store.getFolder("INBOX");
folder.open(Folder.READ_WRITE);
BufferedReader reader = new BufferedReader (
new InputStreamReader(System.in));
// Get directory
Message message[] = folder.getMessages();
for (int i=0, n=message.length; i<n; i++) {
System.out.println(i + ": " + message[i].getFrom()[0]
+ "\t" + message[i].getSubject());
System.out.println("Do you want to delete message? [YES to delete]");
String line = reader.readLine();
// Mark as deleted if appropriate
if ("YES".equals(line)) {
message[i].setFlag(Flags.Flag.DELETED, true);
}
}
// Close connection
folder.close(true);
store.close();
}
}
但是,我需要将args [0]指定为imap.gmail.com args [1]为usrname,args [2]为password。如果我用ip地址74.125.224.86替换imap.gmail.com,它就不再有用了。
我的问题是假设我在雅虎邮箱上有一个帐户,我应该使用哪个主机名? 我试过imap.yahoo.com,mail.yahoo.com和ip地址。
如果你知道答案,你还会介意告诉我,找出我应该使用哪种主机名的常规规则是什么?
非常感谢。
答案 0 :(得分:0)
与Gmail不同,Yahoo Mail的IMAP服务并非完全标准的IMAP服务。您需要在登录前发送一些特殊令牌。您需要修改JavaMail API才能通过IMAP连接到Yahoo Mail。最新的JavaMail 1.4.4-SNAPSHOT版本也支持Yahoo Mail。你可以得到它here