使用Java中的Oauth通过SMTP从Gmail帐户发送邮件

时间:2016-09-29 11:26:29

标签: java oauth oauth-2.0 smtp gmail

我可以使用SMTP发送邮件。但我需要实现Oauth以避免在发送邮件时使用密码。这可以使用accesstoken完成。

经过大量的冲浪,我得到了以下片段。

    Properties props = new Properties();
    props.put("mail.smtp.user", userEmail);
    props.put("mail.smtp.host", host);
    props.put("mail.smtp.port", port);
    props.put("mail.smtp.auth", "true");


    props.put("mail.smtp.starttls.enable", "true");
    props.put("mail.smtp.starttls.required", "true");
    props.put("mail.smtp.sasl.enable", "true");
    props.put("mail.smtp.sasl.mechanisms", "XOAUTH2");
    props.put("mail.imaps.sasl.mechanisms.oauth2.oauthToken", oauthToken);
    Session session = Session.getInstance(props);
    session.setDebug(debug);


    final URLName unusedUrlName = null;
    SMTPTransport transport = new SMTPTransport(session, unusedUrlName);
    // If the password is non-null, SMTP tries to do AUTH LOGIN.
    final String emptyPassword = "";
    transport.connect(host, port, userEmail, emptyPassword);
    transport.sendMessage(message, message.getAllRecipients());
    transport.close();

我正在努力使用SMTPTransport.connect空密码进行连接。

任何人都可以帮助我,我是否可以SEND_MAILS + SMTP + OAUTH + GMAIL_ACCESS_TOKEN?

我感谢工作代码建议。感谢

0 个答案:

没有答案
相关问题