当前位置: 首页 > 知识库问答 >
问题:

使用OAuth和JavaMail发送电子邮件

公冶森
2023-03-14

我有一个Outlook.com的电子邮件帐户。我希望我的Java应用程序能够使用JavaMail从该电子邮件帐户发送电子邮件。为此,我通过OAuth授予了我的应用程序访问权限。

我已经能够使用msgshow中提供的精彩示例应用程序通过IMAP成功连接.java。但是,我正在尝试通过SMTP通过我的 Outlook.com 电子邮件帐户发送电子邮件,但我没有任何运气。我尝试过同时使用msgsend.java和smtpsend.java应用程序。但是,我没有任何运气。我试过了:

java -Dmail.smtp.starttls.enable=true msgsend -d -M smtp-mail.outlook.com -U myAddress@outlook.com -P [oauthAccessToken] recipient@domain.com

返回了:

550 5.7.3 Requested action aborted; user not authenticated
DEBUG SMTP: got response code 550, with response: 550 5.7.3 Requested action aborted; user not authenticated

RSET
DEBUG SMTP: EOF: [EOF]
DEBUG SMTP: MessagingException while sending, THROW: 
com.sun.mail.smtp.SMTPSendFailedException: 550 5.7.3 Requested action aborted; user not authenticated
;
  nested exception is:
    com.sun.mail.smtp.SMTPSenderFailedException: 550 5.7.3 Requested action aborted; user not authenticated

    at com.sun.mail.smtp.SMTPTransport.issueSendCommand(SMTPTransport.java:2202)
    at com.sun.mail.smtp.SMTPTransport.mailFrom(SMTPTransport.java:1693)
    at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:1194)
    at javax.mail.Transport.send0(Transport.java:254)
    at javax.mail.Transport.send(Transport.java:124)
    at msgsend.main(msgsend.java:188)
Caused by: com.sun.mail.smtp.SMTPSenderFailedException: 550 5.7.3 Requested action aborted; user not authenticated

    at com.sun.mail.smtp.SMTPTransport.mailFrom(SMTPTransport.java:1700)
    ... 4 more

我也尝试过:

java -Dmail.smtp.starttls.enable=true smtpsend -d -A -M smtp-mail.outlook.com -U myAddress@outlook.com -P [oauthAccessToken] recipient@domain.com

我得到了:

DEBUG SMTP: Attempt to authenticate using mechanisms: LOGIN PLAIN DIGEST-MD5 NTLM 
DEBUG SMTP: AUTH LOGIN command trace suppressed
DEBUG SMTP: AUTH LOGIN failed
Got Exception: javax.mail.AuthenticationFailedException: 535 5.0.0 Authentication Failed

如何使用OAuth通过JavaMail Outlook.com 发送电子邮件?

非常感谢。

共有1个答案

吕森
2023-03-14

你看到JavaMail wiki上的说明了吗?它们展示了如何在Java中实现这一点,但您也可以使用msgshow来实现。通过在命令行上设置属性,例如“-Dmail.smtp.auth.login.disable=true”,实现java。

 类似资料:
  • 我需要通过我的应用程序发送一封电子邮件,比如使用带有OAuth的javamail API,但我需要如何使用我在下面添加的代码。 我的代码:

  • 我正在使用发送电子邮件,但得到的错误是 我正在做的是,我有一个类作为。 上面的类有一个静态方法,-它将SMTP服务器设置和消息详细信息作为参数。 我把SMTP服务器设置放在我的web.xml文件中,但不知道出了什么问题 我的类 } 这是我的网站。xml文件 这是我的servlet类 我在做正确的事情,但不知道问题是什么 如果我在gmail中启用较少的安全应用程序设置,那么它的工作正常,我不认为这是

  • 我在使用我的公司交换服务器通过Javamail发送电子邮件时遇到了一些问题。我们有一个应用程序通过gmail服务器发送电子邮件没有任何问题,但对于Google策略的一些更改,我们希望使用公司服务器来完成这项工作。我确信会话属性中的问题,但我无法找到使其工作的方法 这是显示日志的错误 javax.mail.MessagingException:无法连接到SMTP主机:mail.company.com

  • 问题:是否有人从SMTP服务器通过JavaMail成功地向hotmail帐户发送电子邮件?如果是这样的话,你能提出有效的代码吗? 我可以使用我的JavaMail代码向gmail和yahoo帐户发送电子邮件,但我不能向hotmail帐户发送任何电子邮件。如果我使用手机或其他电子邮件客户端,并使用与JavaMail代码相同的SMTP服务器,那么我确实可以向hotmail帐户发送电子邮件。这让我相信Ja

  • 我正在尝试使用gmail从Delphi发送电子邮件。我有Indy10.5.9.0和Delphi XE3。 我从中获得了示例代码:http://www.andrecelestino.com/delphi-xe-envio-de-e-mail-com-componentes-indy/ 我还尝试了其他示例代码,但结果相同。 我有libeay32.dll和ssleay32.dll从这里:http://w

  • 问题内容: 如何使用curl命令行程序从gmail帐户发送电子邮件? 我尝试了以下方法: 使用file.txt作为电子邮件的内容,但是,当我运行此命令时,出现以下错误: 是否可以从仍由curl托管的个人服务器托管帐户发送电子邮件?这样会使身份验证过程更容易吗? 问题答案: curl –url 'smtps://smtp.gmail.com:465’ –ssl-reqd \ –mail-from '