SendGrid 的 WSO2 身份服务器 OTP 电子邮件配置

WSO2 Identity Server OTP Email Configuration for SendGrid

我为 sendgrid 设置电子邮件配置变得疯狂。

我关注了steps for configuring Email OTP。 当我尝试未发送电子邮件时,在日志中我发现以下异常:

[2019-01-23 13:15:42,756] ERROR {org.wso2.carbon.event.output.adapter.email.EmailEventAdapter} -  Event dropped at Output Adapter 'EmailPublisher' for tenant id '-1234', Error in message format, null
javax.mail.AuthenticationFailedException
    at javax.mail.Service.connect(Service.java:306)
    at javax.mail.Service.connect(Service.java:156)
    at javax.mail.Service.connect(Service.java:105)
    at javax.mail.Transport.send0(Transport.java:168)
    at javax.mail.Transport.send(Transport.java:98)
    at org.wso2.carbon.event.output.adapter.email.EmailEventAdapter$EmailSender.run(EmailEventAdapter.java:306)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)

整个文档都是关于如何 将 Gmail 配置为电子邮件 OTP 提供商。我已经根据我从基础文档中得到的理解进行了配置。

请在我试过的/repository/conf/identity/application-authentication.xml配置部分下找到配置:

 <AuthenticatorConfig name="EmailOTP" enabled="true">
        <Parameter name="GmailClientId">gmailClientIdValue</Parameter>
        <Parameter name="GmailClientSecret">gmailClientSecretValue</Parameter>
        <Parameter name="SendgridAPIKey">S********1sLhYrS4_h7J1ehoBWA</Parameter>
        <Parameter name="GmailRefreshToken">gmailRefreshTokenValue</Parameter>
        <Parameter name="GmailEmailEndpoint">https://www.googleapis.com/gmail/v1/users/[userId]/messages/send</Parameter>
        <Parameter name="SendgridEmailEndpoint">https://api.sendgrid.com/api/mail.send.json</Parameter>
        <Parameter name="accessTokenRequiredAPIs">Gmail</Parameter>
        <Parameter name="apiKeyHeaderRequiredAPIs">Sendgrid</Parameter>
        <Parameter name="SendgridFormData">SendgridFormData</Parameter>
        <Parameter name="SendgridURLParams">sc</Parameter>
        <Parameter name="GmailAuthTokenType">Bearer</Parameter>
        <Parameter name="GmailTokenEndpoint">https://www.googleapis.com/oauth2/v3/token</Parameter>
        <Parameter name="SendgridAuthTokenType">Bearer</Parameter>
        <Parameter name="redirectToMultiOptionPageOnFailure">false</Parameter>
    </AuthenticatorConfig>

我认为它没有很好地记录 sendgrid 或者我找不到它。任何人都可以提供一些参考或解决方案吗? 提前致谢。

当 Gmail 阻止外部方登录帐户时会抛出此错误。在 https://myaccount.google.com/security 打开 'Less secure app access' 将解决这个问题。