开发者社区 问答 正文

java怎么连接exchange收发邮件

public static void main(String[] args) {
    Exchange.conn();
}
public static void conn(){
    boolean result = false;
    ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010);
    ExchangeCredentials credentials = new WebCredentials(用户名,密码,域);
    service.setCredentials(credentials);
    try {
        service.setUrl(new URI("https://192.168.1.124/EWS/Exchange.asmx"));

        Folder inbox = Folder.bind(service, WellKnownFolderName.Inbox);
        System.out.println(service.getTimeout());

    } catch (Exception e) {
        e.printStackTrace();
    }
}

总是报microsoft.exchange.webservices.data.ServiceLocalException: https://192.168.1.124/EWS/Exchange.asmx : Connection error
浏览器可以打开这个连接,但是需要输入用户密码,还有代码中的用户密码各是指什么?

展开
收起
蛮大人123 2016-03-25 16:56:40 6260 分享 版权
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪
    /**
    serverName 接收邮件地址
    user 用户信息
    pwd 密码
    path 邮件临时储存路径
    max 每次接收邮件的最大数量
    **/
    public int receive(String serverName, String user, String pwd, String path, int max) throws Exception {
            //新建ExchangeVersion.Exchange2007_SP1版本的Exchange服务
        ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2007_SP1);
        String[] userInfo = user.split("/");
        //用户认证信息
            ExchangeCredentials credentials = new WebCredentials(userInfo[1], pwd,userInfo[0]);
            service.setCredentials(credentials);
            //设置Exchange连接的服务器地址
            service.setUrl(new URI(serverName));
            //绑定邮箱
            Folder inbox = Folder.bind(service, WellKnownFolderName.Inbox);
            //获取邮箱文件数量
            int count = inbox.getTotalCount();
            if(max > 0) count = count > max ? max : count; 
            //循环获取邮箱邮件
            ItemView view = new ItemView(count);
            FindItemsResults<Item> findResults = service.findItems(inbox.getId(), view);
            for (Item item : findResults.getItems()) {
                EmailMessage message = EmailMessage.bind(service, item.getId());
                List<Attachment> attachs = message.getAttachments().getItems();
                try{
                    if(message.getHasAttachments()){
                        for(Attachment f : attachs){
                            if(f instanceof FileAttachment){
                                    //接收邮件到临时目录
                                File tempZip = new File(path,f.getName());
                                ((FileAttachment)f).load(tempZip.getPath());
                            }
                        }
                        //删除邮件
                        message.delete(DeleteMode.HardDelete);
                    }
                }catch(Exception err){
                    log.equals(err);
                }
            }
            return count;
        }
    2019-07-17 19:14:43
    赞同 展开评论
问答地址: