没有合适的资源?快使用搜索试试~ 我知道了~
首页Java Mail+Swing+SSL+Html+定时操作获取邮箱中的内容
Java Mail+Swing+SSL+Html+定时操作获取邮箱中的内容

包含了两个完整的例子,用来定时通过SSL访问邮件服务器中特定的邮箱,取出邮箱的内容、作简单的统计后再使用Java Swing以适当的界面显示出来。定时分别给出了使用JDK Timer和Quartz两种方式。 两个例子都能方便地运行,不需要应用服务器的支持。在Web应用满天飞的年代,对于理解相关的技术很有价值。
资源详情
资源评论
资源推荐

1) 写程序用 pop3 收取 gmail 的邮件
入口参数:
用户名 / 密码
做一个线程,每 15 分钟检查一次邮箱,收取邮箱的邮件,并解码后将标题
显示出来
请写出程序
(提示:gmail 的 pop3 使用 SSL 方式,网上有完整可运行的源程序。注意
是每 15 分钟,不是隔 15 分钟)
1.程序 1(based on jdk1.6, jboss java mail)
import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeUtility;
import javax.swing.*;
import java.util.Date;
import java.util.Properties;
import java.util.TimerTask;
import java.util.Timer;
import java.security.Security;
import java.io.UnsupportedEncodingException;
import java.awt.*;
/**
* @author tianbiao
*/
public class GMailTest extends javax.swing.JFrame {
private javax.swing.JButton jButton1;
private javax.swing.JLabel jLabel1;
private javax.swing.JScrollPane jScrollPane1;
private static javax.swing.JTextArea txt;
private static StringBuilder sb = new StringBuilder("");
/**
* Creates new form GMailTest
*/
public GMailTest() {
initComponents();
//Check with interval as 15 minutes
// TimerTask tt = new TimerTask() {
// public void run() {
// checkOutMails();
// }
第 1 页 共 12 页

// };
// Timer ti = new Timer("Check out gmail items every 15 minute:");
// ti.schedule(tt, 60 * 1000, 60 * 15 * 1000);
//Check in every 15 minutes
Worker t = new Worker();
t.start();
}
private static void checkOutMails() {
sb.append("Check at: ").append(new Date()).append("\n");
String account = System.getProperty("Account");
String passwd = System.getProperty("Passwd");
if (null == account || null == passwd) {
JOptionPane.showMessageDialog(null, "Error occur!");
return;
}
Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";
Properties props = System.getProperties();
props.setProperty("mail.pop3.socketFactory.class", SSL_FACTORY);
props.setProperty("mail.pop3.socketFactory.fallback", "false");
props.setProperty("mail.pop3.port", "995");
props.setProperty("mail.pop3.socketFactory.port", "995");
Session session = Session.getDefaultInstance(props, null);
Store store = null;
Folder inbox = null;
URLName urln = new URLName("pop3", "pop.gmail.com", 995, null,
account, passwd);
try {
store = session.getStore(urln);
store.connect();
inbox = store.getFolder("INBOX");
inbox.open(Folder.READ_ONLY);
FetchProfile profile = new FetchProfile();
profile.add(FetchProfile.Item.ENVELOPE);
Message[] messages = inbox.getMessages();
inbox.fetch(messages, profile);
sb.append("Total mail count: " + messages.length).append("\n");
int i = 0;
第 2 页 共 12 页

while (i < messages.length) {
String from = decodeText(messages[i].getFrom()[0].toString());
InternetAddress ia = new InternetAddress(from);
sb.append("FROM:" + ia.getPersonal() + '(' + ia.getAddress() +
')').append("\n");
sb.append("TITLE:" + messages[i].getSubject()).append("\n");
sb.append("SIZE:" + messages[i].getSize()).append("\n");
sb.append("DATE:" + messages[i].getSentDate()).append("\n\n");
i++;
}
EventQueue.invokeLater(new Runnable() {
public void run() {
txt.setText(sb.toString());
}
});
} catch (Exception ex) {
ex.printStackTrace();
}
finally {
try {
inbox.close(false);
} catch (Exception e) {
}
try {
store.close();
} catch (Exception e) {
}
}
}
private void initComponents() {
jLabel1 = new javax.swing.JLabel();
jScrollPane1 = new javax.swing.JScrollPane();
txt = new javax.swing.JTextArea();
jButton1 = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setTitle("Google Mail Test");
this.setResizable(false);
String lbl = "<html><body>Get gmail info. at fixed frequency<br><b>The
application starts at " + new Date() + "</b></body></html>";
jLabel1.setText(lbl);
第 3 页 共 12 页
剩余11页未读,继续阅读

















安全验证
文档复制为VIP权益,开通VIP直接复制

评论8