邮箱系统学习笔记

 

一、          邮件删除
  private   void   按钮处理函数()  
  {  
      Message   msg   =   ....  
      msg.setFlag(Flags.Flag.DELETED);  
  }  
  在这里应怎么对Message处理才能达到要求?  
  我在读邮件时对邮件设标记可以删除邮件,在其他别的地方就不行了,不知应该怎么办,老大,再帮帮我把!

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

 

 

问题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.com

3. 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. http://blog.csdn.net/myrogin/archive/2007/06/28/1670539.aspx  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值