shaersa 2009-11-29 21:54
浏览 269

Java收邮件功能

在同事帮助下写了一个javaMail收邮件的功能 好像用不成
请哪位大哥赐教下~ 实在没办法了 只要收件功能就行了
[b]问题补充:[/b]
总是报这个异常javax.mail.NoSuchProviderException: Invalid protocol: null
at javax.mail.Session.getProvider(Session.java:431)
at javax.mail.Session.getStore(Session.java:530)

代码
package com.abank.util;

import com.ReciveOneMail;

import javax.mail.*;
import javax.mail.internet.MimeMessage;
import java.util.Properties;

/**

  • Created by IntelliJ IDEA.
  • User: Administrator
  • Date: 2009-11-27
  • Time: 16:17:13
  • To change this template use File | Settings | File Templates.
    */
    public class MainSender {
    // 接受邮件
    // 接受邮件
    public static String getMail() throws Exception{
    String host = "pop3.163.com";

    // 创建Properties 对象
    Properties props = new Properties();
    final String username = "shaersashajindan@163.com";
    final String password = "327521526";
    // 创建邮件会话
    Session session = Session.getDefaultInstance(props,null);
    try {
        // 获取邮箱的pop3存储
         URLName urln = new URLName("pop3");
        Store store = session.getStore(urln);
        store.connect(host, username, password);
    
        // 获取inbox文件
        Folder folder = store.getFolder("INBOX");
        folder.open(Folder.READ_ONLY); // 打开,打开后才能读取邮件信息
    
        // 获取邮件消息
        Message[] message = folder.getMessages();
    
        FetchProfile profile = new FetchProfile();
        profile.add(FetchProfile.Item.ENVELOPE);
        folder.fetch(message, profile);
    
        System.out.println("unread message count =:"+folder.getDeletedMessageCount());
        System.out.println("message length =:"+message.length);
        System.out.println("Messages's length: " + message.length);
        ReciveOneMail pmm = null;
        for (int i = 0, n = message.length; i < n; i++) {
            System.out.println("============================================================");
            pmm = new ReciveOneMail((MimeMessage) message[i]);
            System.out.println("Message " + i + " subject: "
                    + pmm.getSubject());
            System.out.println("Message " + i + " sentdate: "
                    + pmm.getSentDate());
            System.out.println("Message " + i + " replysign: "
                    + pmm.getReplySign());
            System.out.println("Message " + i + " hasRead: " + pmm.isNew());
            System.out.println("Message " + i + "  containAttachment: "
                    + pmm.isContainAttach((Part) message[i]));
            System.out.println("Message " + i + " form: " + pmm.getFrom());
            System.out.println("Message " + i + " to: "
                    + pmm.getMailAddress("to"));
            System.out.println("Message " + i + " cc: "
                    + pmm.getMailAddress("cc"));
            System.out.println("Message " + i + " bcc: "
                    + pmm.getMailAddress("bcc"));
            pmm.setDateFormat("yy年MM月dd日 HH:mm");
            System.out.println("Message " + i + " sentdate: "
                    + pmm.getSentDate());
            System.out.println("Message " + i + " Message-ID: "
                    + pmm.getMessageId());
            // 获得邮件内容===============
            pmm.getMailContent((Part) message[i]);
            System.out.println("Message " + i + " bodycontent: \r\n"
                    + pmm.getBodyText());
            pmm.setAttachPath("c:\\mailfile");
            pmm.saveAttachMent((Part) message[i]);
            message[i].setFlag(Flags.Flag.DELETED, true);
            if(message[i].isSet(Flags.Flag.DELETED))
                System.out.println("邮件已删除");
    
        }
    
        // 关闭资源
        folder.close(true);
        store.close();
        System.out.println("success");
    } catch (MessagingException e) {
        e.printStackTrace();
    }
    
    System.out.println("GetMail Process Over!");
    return "ririri";
    

    }
    }

  • 写回答

2条回答 默认 最新

  • wanghaolovezlq 2009-11-30 00:14
    关注
    评论

报告相同问题?

悬赏问题

  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?