邮件删除

private   void   按钮处理函数()  
   {  
       Message   msg   =   ....  
       msg.setFlag(Flags.Flag.DELETED);  
   }


  在这里应怎么对Message处理才能达到要求?  
  我在读邮件时对邮件设标记可以删除邮件,在其他别的地方就不行了,不知应该怎么办,老大,再帮帮我把!

尽管依据   pop3   协议,客户端可以指定删除服务器上的任一封邮件,但   javamail   里只有在   Folder   被   close   时才会删除那些邮件。  
   
  我做   javamail   时是这样的,不知在最新的版本里是不是有增加别的特性。  
  先对要删除的邮件设置删除标志,就是你那样设的。  
  再  
 



问题1. 邮件主题的乱码

很多朋友都使用过JavaMail进行邮件发送,在邮件正文中的乱码容易解决。但邮件主题的乱码无论怎样转码总是显示一堆乱码。到底应该怎么处理呢?

JavaMail中的邮件主题需要进行BASE64编码,格式形如:
=?GB2312?B?xPq1xMPcwuvS0b6t1tjWw6Osx+u+ob/stcfCvKOssqLQ3rjEw9zC66Oh?=
所以,直接使用msg.setSubject("中文主题"),或者msg.setSubject("中文主题".getBytes("8859_1"), "GB2312"))都一样会出现乱码。在设置邮件主题前需要将主题字串的字节编码为BASE64格式,并添加编码头,示例代码如下:

sun.misc.BASE64Encoder enc = new sun.misc.BASE64Encoder(); msg.setSubject("=?GB2312?B?"+enc.encode(subject.getBytes())+"?=");

怎么样,现在中文可以正常显示了吧。

原文转自Java中文站

问题2. 163邮箱不能接收邮件问题

Host 没有设置对.应该设为:”pop3.163.com”
//           Sina SMTP服务器: smtp.sina.com.cn
 //           163  SMTP服务器: smtp.163.com3. hotmail邮件的收发器 **
 * hotmail邮件的收发器
 * @author liudong
 */
 public class hotmaildemo {
 public static void main(string[] args) {
 receive();
 }


 protected static void receive() {
 try {
 properties prop = new properties();
 session ses = session.getinstance(prop);
 //使用jdavmail provider
 store store = ses.getstore("davmail");
 //无需指定服务器地址
 store.connect(null, "你的帐号","密码");

.问题4  POP3协议是不支持对新旧邮件的判断的!  
   
  我的做法是把邮件的大小和邮件的发送时间保存在本地,每次一封封的比较!  
   
 


5.邮件数

newcount=folder.getunreadmessagecount();//得到新邮件数  
oldandnewcount=folder.getmessagecount();//得到所有邮件数


相关网站:

1.