当前位置: 首页 > 知识库问答 >
问题:

Javamail从交换读取邮件在本地主机中工作,但在服务器上托管时则不然

郭坚壁
2023-03-14

我成功地能够阅读和删除邮件使用javamail时尝试从localhost但当我部署java代码在服务器上并尝试调用服务,它卡在store.connect(Pop3Host,用户,密码);

DEBUG: setDebug: JavaMail version 1.4.7
DEBUG: getProvider() returning javax.mail.Provider[STORE,pop3s,com.sun.mail.pop3.POP3SSLStore,Oracle]
DEBUG POP3: mail.pop3s.rsetbeforequit: false
DEBUG POP3: mail.pop3s.disabletop: false
DEBUG POP3: mail.pop3s.forgettopheaders: false
DEBUG POP3: mail.pop3s.cachewriteto: false
DEBUG POP3: mail.pop3s.filecache.enable: false
DEBUG POP3: mail.pop3s.keepmessagecontent: false
DEBUG POP3: mail.pop3s.starttls.enable: false
DEBUG POP3: mail.pop3s.starttls.required: false
DEBUG POP3: mail.pop3s.apop.enable: false
DEBUG POP3: mail.pop3s.disablecapa: false
DEBUG POP3: connecting to host "hostname", port 995, isSSL true


Here are the properties added:

    Properties properties = new Properties();
                properties.put("mail.store.protocol", "pop3");
            //  properties.put("mail.imap.host", pop3Host);
            //  properties.put("mail.imap.port", 143);
            //  properties.put("mail.smtp.auth.plain.disable", true);
                properties.put("mail.pop3.starttls.enable", "true");
                properties.setProperty("ssl.SocketFactory.provider", "ExchangeSSLSocketFactory");
                properties.setProperty("mail.pop3.socketFactory.class", "ExchangeSSLSocketFactory");
                Session emailSession = Session.getInstance(properties);
                 emailSession.setDebug(true);
                // create the POP3 store object and connect with the popserver
                Store store = emailSession.getStore("pop3s");
                store.connect(pop3Host, user, password);

                // create the folder object and open it
                Folder emailFolder = store.getFolder("INBOX");
                emailFolder.open(Folder.READ_WRITE);

共有1个答案

董联
2023-03-14

可能有防火墙阻止您直接连接,要求您通过代理服务器进行连接。

此外,您可能不需要特殊的插座工厂。您使用的是“pop3s”协议,但设置的是“pop3”协议的属性。如果只使用“pop3”协议并设置“mail.pop3.ssl.enable”属性,可能会更简单。如果一开始就使用SSL连接,就不需要starttls属性。

 类似资料:
  • 我一直在努力从我的ubuntu服务器发送邮件。奇怪的是,它在我的mac上的本地tomcat实例上运行得非常好。 以下是我的实现: 让我恼火的是,javamail的输出日志在我的服务器和本地是一样的,而且没有错误: 到目前为止我所做的一切 > 检查我的垃圾邮件(比如一千次,以防万一... 尝试了其他端口,如465和25- 使用iptable打开587端口 iptables -A 输出 -p tcp

  • 这是我的第一个问题,也是第一篇英文帖子,请耐心等待。 我正在研究ASP。NET MVC Web Api RESTful应用程序。对于用户身份验证,我想使用加密令牌。我在localhost上工作的想法是:用户请求令牌地址/令牌,在头中包括auth:昵称:passwd,服务器返回加密的令牌,用户将在下一个请求中使用它。所以,用户发送带有头身份验证令牌的请求:encryptedToken,服务器将解密该

  • 我可以使用Postman从FruityVice获取这个API。但当我在本地运行时,我遇到了CORS问题。 我一直在引用尝试的解决方案,并注意解决方案2,试图清除错误,但没有运气。 误差 CORS策略阻止从来源“http://localhost:3000”在“https://www.fruityvice.com/api/fruit/all”获取:请求的资源上没有“access-control-all

  • LocalHost显示空白页。我将Apache的端口更改为80,当我按下open page时,它会转到localhost/mamp。当我删除/mamp时,我得到的只是一个空白页。我尝试过多种方法,比如关闭mamp,启动它,重新启动我的机器。我已经检查了文件夹设置,一切正常。 我通过创建一个新的文件页索引来测试它。html,它打开的很好。 我不知道它为什么不打开我的索引。php文件。下面是我的php

  • 我创建了Spring启动应用程序。它在我的本地主机上成功运行。但当我在linux centos服务器中部署并运行jar文件时,找不到索引页(我得到:出现了一个意外错误(type=notfound,status=404)/WEB-INF/jsp/index。(jsp) 这是我的代码结构和应用程序。特性: 代码结构 这是我的pom。xml依赖项:

  • 我有两个应用程序——基于浏览器的客户端和基于NodeJS的服务器,它们都使用WebSockets进行通信(我使用的是ColyseusJS库)。问题是,当我在本地主机上测试它们时,一切都正常,但当我将应用程序部署到我的Ubuntu VPS服务器时,它停止工作。 我在尝试连接时在浏览器中收到的消息是: 所以它到达服务器(因为当服务器被禁用时,消息是“连接建立中的错误:净::ERR_CONNECTION