Java SendFailedException:密码错误

Java SendFailedException:密码错误,java,email,smtp,gmail,jakarta-mail,Java,Email,Smtp,Gmail,Jakarta Mail,这个问题已经从一个相当模糊的问题演变成一个更明确的问题。代码来自一个。至少根据谷歌的说法,我遵循了他们的登录建议。当然,当输入正确的密码时,我会得到相同的结果,下面的密码是一个伪密码。不管密码是什么,它都是相同的输出 输出: BUILD SUCCESSFUL Total time: 1 second -- listing properties -- mail.smtp.gmail=smtp.gmail.com mail.smtps.quitwait=true mail.smtp.username

这个问题已经从一个相当模糊的问题演变成一个更明确的问题。代码来自一个。至少根据谷歌的说法,我遵循了他们的登录建议。当然,当输入正确的密码时,我会得到相同的结果,下面的密码是一个伪密码。不管密码是什么,它都是相同的输出

输出:

BUILD SUCCESSFUL
Total time: 1 second
-- listing properties --
mail.smtp.gmail=smtp.gmail.com
mail.smtps.quitwait=true
mail.smtp.username=hawat.thufir@gmail.com
mail.smtp.starttls.enable=true
mail.smtp.connectiontimeout=2000
mail.smtp.user=hawat.thufir
mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory
mail.smtp.password=password
nntp.host=nntp://localhost/
mail.smtp.socketFactory.port=465
mail.smtp.timeout=2000
mail.imap.port=993
mail.imap.timeout=5000
mail.smtp.port=587
mail.smtp.auth=true
mail.imap.host=imap.gmail.com
mail.nntp.newsrc.file=/home/thufir/.newsrc
mail.imap.connectiontimeout=5000
mail.smtp.host=smtp.gmail.com

========message follows==========

Exception in thread "main" java.lang.RuntimeException: javax.mail.SendFailedException: Send failed;
  nested exception is: 
    javax.mail.SendFailedException: 5.5.1 http://support.google.com/mail/bin/answer.py?answer=14257 g6sm55120721pat.2 - gsmtp
    at net.bounceme.dur.nntp.SendTLS.sendMessage(SendTLS.java:61)
    at net.bounceme.dur.nntp.SendTLS.<init>(SendTLS.java:23)
    at net.bounceme.dur.nntp.SendTLS.main(SendTLS.java:34)
Caused by: javax.mail.SendFailedException: Send failed;
  nested exception is: 
    javax.mail.SendFailedException: 5.5.1 http://support.google.com/mail/bin/answer.py?answer=14257 g6sm55120721pat.2 - gsmtp
    at javax.mail.Transport.doSend(Transport.java:231)
    at javax.mail.Transport.send(Transport.java:75)
    at net.bounceme.dur.nntp.SendTLS.sendMessage(SendTLS.java:57)
    ... 2 more
thufir@dur:~/NetBeansProjects/MailFromNNTP$ 

因为你正在连接Gmail。使用这些属性

prop.put("mail.smtp.starttls.enable", "true"); 
prop.put("mail.smtp.host", host); 
prop.put("mail.smtp.user", from); 
prop.put("mail.smtp.password", pass); 
prop.put("mail.smtp.port", "465"); 
prop.put("mail.smtp.auth", "true");
也要经历这个


端口是整数(而不是字符串?只是猜测:P)?还可以尝试用Session.getInstance(props)替换getDefaultInstance。如果那没用的话。尝试使用props“mail.smtp.connectiontimeout”和“mail.smtp.timeout”并设置获取堆栈跟踪的限制。通常是防火墙/端口/网络问题第58行是连接:
transport.connect(主机、端口、用户、密码)并且,顺便说一下,端口是一个int。当然,我用正确的密码试过了`我知道这已经经过了一些修改。这很奇怪,将属性文件缩减到最小值实际上会在
SendTLS
中引入错误。我不知道这一点,我的最后一次尝试,您使用的是两步登录吗?不,只是常规登录。我明天会再试一次,而不是tls。如果没有帮助,请留下评论:)我会试试这个,看起来很有趣。为什么我需要一个验证器,或者它同样是一个调试工具,以获得更多的输出?(即,密码错误等)这是内部类吗?Gmail内部
?或者,在与Gmail相同的.java文件中,但不在内部?或者,在它自己的.java文件中?在这种情况下,is protectedIt可能是Gmail中的一个内部类。当您需要验证器和不需要验证器时,请参见此t@Thufir:您能否按原样运行代码(不带验证器和其他东西),并修改以下行:transport=(SMTPTransport)session.getTransport();在没有“smtp”部分的情况下按原样运行它。我认为这可能是错误的
prop.put("mail.smtp.starttls.enable", "true"); 
prop.put("mail.smtp.host", host); 
prop.put("mail.smtp.user", from); 
prop.put("mail.smtp.password", pass); 
prop.put("mail.smtp.port", "465"); 
prop.put("mail.smtp.auth", "true");
*Post was modified after answering, answer may no longer be relevant*