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

时间:2019-01-23 08:02:23

标签: email configuration-files wso2is sendgrid one-time-password

在为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的记录不正确,或者找不到。有人可以为它提供一些参考或解决方案吗? 提前致谢。

1 个答案:

答案 0 :(得分:2)

当Gmail阻止外部方登录该帐户时,将引发此错误。在https://myaccount.google.com/security上选择“缺乏安全的应用程序访问权限”将解决此问题。