【发布时间】:2012-03-14 11:30:40
【问题描述】:
我在 Spring 中使用以下设置来创建我的邮件发件人。
<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
<property name="host" value="mail.heavyweight.com"/>
<property name="password" value="xxxxxx"/>
<property name="port" value="26"/>
<property name="username" value="thom@heavyweight.com"/>
<property name="session">
<bean class="javax.mail.Session" factory-method="getDefaultInstance">
<constructor-arg>
<props>
<prop key="mail.smtp.from">thom@heavyweight.com</prop>
<prop key="mail.smtp.user">thom@heavyweight.com</prop>
<prop key="mail.smtp.auth">true</prop>
<prop key="mail.smtp.starttls.enable">false</prop>
</props>
</constructor-arg>
<property name="debug" value="true"/>
</bean>
</property>
</bean>
使用我在邮件客户端中使用的相同 SMTP 服务器、用户和密码。
当我尝试发送电子邮件时,我在调试中得到了这个:
DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc]
DEBUG SMTP: useEhlo true, useAuth true
DEBUG SMTP: trying to connect to host "mail.heavyweight.com", port 26, isSSL false
220-dyn.dynamicwebs.com ESMTP Exim 4.69 #1 Thu, 23 Feb 2012 16:55:27 -0600
220-We do not authorize the use of this system to transport unsolicited,
220 and/or bulk e-mail.
DEBUG SMTP: connected to host "mail.heavyweight.com", port: 26
EHLO motion
250-dyn.dynamicwebs.com Hello 74-133-195-24.dhcp.insightbb.com [74.133.195.24]
250-SIZE 52428800
250-PIPELINING
250-AUTH PLAIN LOGIN
250-STARTTLS
250 HELP
DEBUG SMTP: Found extension "SIZE", arg "52428800"
DEBUG SMTP: Found extension "PIPELINING", arg ""
DEBUG SMTP: Found extension "AUTH", arg "PLAIN LOGIN"
DEBUG SMTP: Found extension "STARTTLS", arg ""
DEBUG SMTP: Found extension "HELP", arg ""
DEBUG SMTP: Attempt to authenticate
DEBUG SMTP: check mechanisms: LOGIN PLAIN DIGEST-MD5 NTLM
AUTH LOGIN
334 VXNlcm5hbWU6
dGhvbUBoZWF2eXdlaWdodHNvZnR3YXJlLmNvbQ==
334 UGFzc3dvcmQ6
[redacted]
535 Incorrect authentication data
那么为什么我会得到 535?有什么想法吗?
我之前已经成功完成了几次,没有问题。有关此服务器的特定信息。
密码似乎已加密。既然我需要密码不加密,这会不会有问题?
谢谢。
【问题讨论】:
-
您知道您的邮件服务是否希望您的密码被编码?也许是 Base64?
-
@jowierun 由于我的邮件客户端正在发送未加密的密码,我假设这将需要同样的东西。我认为这回答了你的问题。
-
我希望这不是您的真实密码...如果它只是 base64 编码并且解码起来很简单,所以现在更改它(并使其如此 :-) 我编辑了帖子以进行编辑密码。
-
至于 535,除非服务器在撒谎,否则它的含义正是 RFC 所说的——服务器拒绝了您的凭据。我建议您尝试使用 Wireshark 从您的电子邮件客户端观看“工作”会话,以查看真正传输的内容。
-
谢谢,但是,这不是我的真实密码。
标签: java spring smtp jakarta-mail