又是大哥
我是用下面的代码, 在已发送文件夹删除一次有什么代码没有?谢谢,你真好
try {
mState = NONE;
Properties props = System.getProperties();
props = System.getProperties();
if (mailType == MailType.TYPE_GMAIL) { // 如果为gmail邮箱,需要设置下两项
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.port", "587"); // gmail smtp port 587 / 465
} props.put("mail.smtp.host", mSmtp_host);
props.put("mail.smtp.user", mFrom_userName);
props.put("mail.smtp.password", mFrom_passWord);
props.put("mail.smtp.auth", "true"); mSession = Session.getDefaultInstance(props, null);
mSession.setDebug(false); mMimeMsg = new MimeMessage(mSession);
mMimeMsg.setFrom(new InternetAddress(mFrom_userName)); // mMimeMsg.setContent(mContent, "text/html;charset=utf-8"); if (mToId != null)
setSendToMsg(mToId);
if (mCcId != null)
setCopyToMsg(mCcId);
if (mBccId != null)
setBCopyToMsg(mBccId); if (mSubject != null) {
mMimeMsg.setSubject(mSubject);
}
if (mShow_name != null) {
mMimeMsg.setFrom(new InternetAddress(mShow_name + "<"
+ mFrom_userName + ">"));
}
if (mContent != null) {
setContentMp(mContent);
mMimeMsg.setContent(mp);
}
if (mFilePath != null) {
addFile(mFilePath);
} System.out.println(mMimeMsg.getAllRecipients().toString());
Transport transport = mSession.getTransport("smtp");
System.out.println("connecting...");
mState = CONNECTING;
transport.connect(mSmtp_host, mFrom_userName, mFrom_passWord); //
if(!transport.isConnected())
{
Log.i(Tag, "Connect failure");
return;
} mState = CONNECTED;
Log.i(Tag, "Connected to " + mFrom_userName + " succuss");
System.out.println("sending...");
mState = SENDING;
transport.sendMessage(mMimeMsg, mMimeMsg.getAllRecipients());
mState = SENDED;
transport.close();
} catch (Exception e) {
System.out.println("failure! ");
Log.d(Tag, " failure! ", e);
e.printStackTrace();
}

解决方案 »

  1.   

    先用
    Folder defaultFolder = store.getDefaultFolder();
    Folder[] allFolder = defaultFolder.list();
    获取有什么文件夹,然后根据列表中的文件夹名getFolder
    Store store= session.getStore("pop3");
    store.connect(host,username, password);
    Folder folder = store.getFolder("文件夹路径"); // 这里根据所选文件夹删除
    folder.open(Folder.READ_WRITE);//注意这里与读取时的区别
    Message message[] = folder.getMessages();
    BufferedReader reader = new BufferedReader ( new InputStreamReader(System.in));
    for(int i=0;i<message.length;i++){
    message[i].setFlag(Flags.Flag.DELETED, true);//我这里是删除了所有的文件,可根据需要来编写代码
    }
    folder.close(true);//注意这里与读取的区别,这里是确认删除的操作....
    store.close();
      

  2.   

    有两个问题
    1。 Folder folder = store.getFolder("文件夹路径");
     //文件夹路径里收件箱是“INBOX”,已发送是“SENDBOX”?  
    2。message[i].setFlag(Flags.Flag.DELETED, true);
    //是局部变量, 它的变化好像没反应到邮件服务器?多谢提供代码
      

  3.   

    补允:BufferedReader reader is not used ,是不是这里要怎么用一下
      

  4.   


    Folder defaultFolder = store.getDefaultFolder();
    Folder[] allFolder = defaultFolder.list();
    在这里找。参考下:http://www.alixixi.com/program/a/2008020835375.shtml
      

  5.   


    Folder defaultFolder = store.getDefaultFolder(); 只能获得一个“INBOX”看有个文章说POP3协议下getFolder(name)只支持“INBOX”:
    getFolder
    public Folder getFolder(java.lang.String name)
                     throws MessagingException
    Only the name "INBOX" is supported.试用了IMAP,就可以得到所有的文件夹:”INBOX, 草稿箱, 已发送, 已删除, 垃圾邮件, 广告邮件“
    而我不想用IMAP,用POP3是没办法得到“已发送”邮件呢?
      

  6.   

    POP3得到發件箱郵件貌似不行。
    http://bbs.csdn.net/topics/10021225
      

  7.   

    我在想outlook,  foxmail 是怎么在不开通IMAP协议情况下实现的呢? 谢谢你了
      

  8.   

    再问:怎么用javamail 检查邮箱开通了什么协议?谢谢
      

  9.   

    我有两个QQ邮箱,设置一样, 其中一个没问题,另一个出现:
    06-17 16:48:20.973: I/System.out(2218): A0 OK CAPABILITY Completed
    06-17 16:48:21.023: I/System.out(2218): IMAP DEBUG: AUTH: LOGIN
    06-17 16:48:21.077: I/System.out(2218): DEBUG: protocolConnect login, host=imap.qq.com, [email protected], password=<non-null>
    06-17 16:48:21.203: I/System.out(2218): A1 AUTHENTICATE LOGIN
    06-17 16:48:21.306: D/dalvikvm(2218): GC_CONCURRENT freed 402K, 6% free 8953K/9479K, paused 78ms+10ms, total 201ms
    06-17 16:48:21.306: I/System.out(2218): + VXNlciBOYW1lAA==
    06-17 16:48:21.373: I/System.out(2218): ODIyNTExNDExQHFxLmNvbQ==
    06-17 16:48:21.414: I/System.out(2218): + UGFzc3dvcmQA
    06-17 16:48:21.467: I/System.out(2218): aGVsbDMzMDU=部分代码:
       Properties  props = new Properties(); 
       //获得Session 
       Session session = Session.getDefaultInstance(props, null);
       session.setDebug(true);
                      try{
       store=  (IMAPStore) session.getStore("imap");
       store.connect(IMAPHost, username, password);
          folder = (IMAPFolder)store.getFolder("Sent Messages"); // 这里根据所选文件夹删除    
               if(folder.exists())
                              {
    folder.open(Folder.READ_WRITE);//注意这里与读取时的区别
         flag = true;
           }
    }
    catch (Exception ex) {
    Log.e("IMAP not open",ex.toString());
        //System.out.println(ex.toString());
        flag = false;
    }
    return flag;打印的异常看不懂, 两个邮箱POP3,IMAP,SMTP都开启了,怎么会不同结果?