java中的hotmail登录错误(IDE:Netbeans)
我正在创建一个用java发送电子邮件的应用程序,一切都设置好了,工作正常。但错误是当我尝试登录Hotmail帐户时,它显示了错误的电子邮件和密码,我在catch block中给出了错误的电子邮件和密码。 但当我第一次登录雅虎或gmail时,它会登录hotmail,之后我可以登录hotmail,但我不能先登录hotmail,为什么?!代码如下 这就解释了为什么你可以在登录gmail或yahoo后再登录你的hotmail帐户。实际上,您登录的帐户与第一次尝试时登录的帐户相同。问题是您使用的是SessiongetDefaultInstance,而不是SessiongetInstance: Session.getDefaultInstance方法第一次创建一个新会话 调用它的时间,使用传递的属性。后来的 调用将返回原始会话,并忽略您创建的任何属性 过去。如果要创建具有不同会话的不同会话 属性,Session.getDefaultInstance不会这样做。[…]始终使用Session.getInstance来避免此问题 但是,这并不能解释为什么您不能登录到hotmail帐户,但您应该发布异常堆栈跟踪,以便我们可以帮助您 更新: 基于此堆栈跟踪:java中的hotmail登录错误(IDE:Netbeans),java,netbeans,runtime-error,email,Java,Netbeans,Runtime Error,Email,我正在创建一个用java发送电子邮件的应用程序,一切都设置好了,工作正常。但错误是当我尝试登录Hotmail帐户时,它显示了错误的电子邮件和密码,我在catch block中给出了错误的电子邮件和密码。 但当我第一次登录雅虎或gmail时,它会登录hotmail,之后我可以登录hotmail,但我不能先登录hotmail,为什么?!代码如下 这就解释了为什么你可以在登录gmail或yahoo后再登录你的hotmail帐户。实际上,您登录的帐户与第一次尝试时登录的帐户相同。问题是您使用的是Sess
com.sun.mail.smtp.SMTPSendFailedException: 530 5.7.0 Must issue a STARTTLS command first
这意味着您必须根据Hotmail要求将mail.smtp.starttls.enable属性设置为true:
在下选择TLS以使用以下类型的加密连接
发送服务器SMTP,然后单击“确定”。请注意传出服务器
SMTP框应设置为端口25。如果端口25在中被阻塞
通过网络或ISP,您可以将SMTP端口设置为587
注:摘自
尝试登录到Hotmail帐户时,您只应在代码中添加以下行:
props.put("mail.smtp.starttls.enable", "true");
另外,不要忘记按照我上面的建议,将Session.getDefaultInstance替换为Session.getInstance。这就解释了为什么在登录gmail或yahoo后,您可以登录hotmail帐户。实际上,您登录的帐户与第一次尝试时登录的帐户相同。问题是您使用的是SessiongetDefaultInstance,而不是SessiongetInstance:
Session.getDefaultInstance方法第一次创建一个新会话
调用它的时间,使用传递的属性。后来的
调用将返回原始会话,并忽略您创建的任何属性
过去。如果要创建具有不同会话的不同会话
属性,Session.getDefaultInstance不会这样做。[…]始终使用Session.getInstance来避免此问题
但是,这并不能解释为什么您不能登录到hotmail帐户,但您应该发布异常堆栈跟踪,以便我们可以帮助您
更新:
基于此堆栈跟踪:
com.sun.mail.smtp.SMTPSendFailedException: 530 5.7.0 Must issue a STARTTLS command first
这意味着您必须根据Hotmail要求将mail.smtp.starttls.enable属性设置为true:
在下选择TLS以使用以下类型的加密连接
发送服务器SMTP,然后单击“确定”。请注意传出服务器
SMTP框应设置为端口25。如果端口25在中被阻塞
通过网络或ISP,您可以将SMTP端口设置为587
注:摘自
尝试登录到Hotmail帐户时,您只应在代码中添加以下行:
props.put("mail.smtp.starttls.enable", "true");
另外,不要忘记按照我上面的建议,将Session.getDefaultInstance替换为Session.getInstance。能否添加异常的堆栈跟踪?您假设您的异常是由身份验证问题引起的,但可能不是。我还建议您尝试使用端口578而不是25,因为最后一个端口可能会被网络防火墙或您的ISP阻止。像578或25这样的端口可以工作,但不会在首次登录时工作!听起来很奇怪。请添加异常的堆栈跟踪,以便更多的人可以帮助您。当我添加异常的堆栈跟踪时,它会显示以下错误。。!com.sun.mail.smtp.SMTPSendFailedException:530 5.7.0必须首先发出STARTTLS命令您可以添加异常的堆栈跟踪吗?您假设您的异常是由身份验证问题引起的,但可能不是。我还建议您尝试使用端口578而不是25,因为最后一个端口可能会被网络防火墙或您的ISP阻止。像578或25这样的端口可以工作,但不会在首次登录时工作!听起来很奇怪。请添加异常的堆栈跟踪,以便更多的人可以帮助您。当我添加异常的堆栈跟踪时,它会显示以下错误。。!com.sun.mail.smtp.SMTPSendFailedException:530 5.7.0必须发出STARTTLS命令firstexception堆栈跟踪为:com.sun.mail.smtp.SMTPSendFailedException:530 5.7.0必须发出STARTTLS命令firstGreat!您很好:异常堆栈跟踪是:com.sun.mail.SMTPSendFailedException:530 5.7.0必须首先发出STARTTLS命令太棒了!你是威康: