我可以用java发送邮件到gmail,当“Allow less secure apps: ON
”时(你可以找到代码here)。但是在“允许安全性较低的应用程序:关闭”时出现错误。请给我正确的步骤来解决这个问题。
错误:
534-5.7.14 <https://accounts.google.com/ContinueSignIn?sarp=1&scc=1&plt=AKgnsbtDY
534-5.7.14 01tH8y-udRciS_SO5d08uqHUrrFPAbG1_XdRaoO-x_gAICwxl_UIsENPSoTXVrNqFs5BcR
534-5.7.14 KXMaVoEIwR9uACjnduELTwJg0SxLrXL5CltztHepubHzUzgC6h-iszlhKrUuckV1-k6FWS
534-5.7.14 jpMrpomFM2k_UcOdDm7SyTde8MadhGyxmYDZ5KZAHcqkRGKjR6hU7oY8hUaTFocikPxquP
534-5.7.14 B2iqPFDd4NLZqv6qGfDNK0q_i17s> Please log in via your web browser and
534-5.7.14 then try again.
534-5.7.14 Learn more at
534 5.7.14 https://support.google.com/mail/answer/78754 ud10sm34016765pab.27 - gsmtp
我如何得到令牌:
第1步:我在google开发者控制台中创建了服务帐户。
第2步:接下来,通过使用此服务帐户,我获得了令牌。您可以在下面找到代码。
第3步:如何使用此令牌发送邮件到Gmail?请指导我。请告诉我我是新手。指导我,如果我错了
String emailAddress = "XXXX@XXXX.XX.gserviceaccount.com";
JsonFactory JSON_FACTORY = JacksonFactory.getDefaultInstance();
HttpTransport httpTransport;
try {
httpTransport = GoogleNetHttpTransport.newTrustedTransport();
GoogleCredential credential = new GoogleCredential.Builder()
.setTransport(httpTransport)
.setJsonFactory(JSON_FACTORY)
.setServiceAccountId(emailAddress)
.setServiceAccountPrivateKeyFromP12File(new File("XXXX.p12"))
.setServiceAccountScopes(Collections.singleton(SQLAdminScopes.SQLSERVICE_ADMIN))
.build();
System.out.println("success......");
credential.refreshToken();
token = credential.getAccessToken();
答案 0 :(得分:0)
升级到使用最新安全措施的更安全的应用。
如何:
非常简单,你只需要完成所有步骤,一切都很好解释。
答案 1 :(得分:0)
如果您没有启用2步验证,则以下tutorial将允许您使用javax.mail通过GMail发送邮件,几乎没有大惊小怪。它在传输过程中使用SSL,但在限制较少的端口(587而不是465)上,你必须记住确保添加(&#34; mail.smtp.starttls.enable&#34;,&#34; true&#34;)属性或您不会使用SSL。值得记住的是,这种方法会尝试使用ssl,但如果服务器没有ssl功能,它将以纯文本形式传输。