在 wso2 身份服务器 5.3 中设置邮件服务器

Setting mail server in wso2 identity server 5.3

我为密码恢复设置电子邮件服务器变得疯狂。

我已遵循密码恢复指南 1。 当我尝试恢复密码时,GUI 通知我电子邮件已正确发送,但在日志中我发现以下异常:

[2017-03-08 09:24:42,913] ERROR -  Event dropped at Output Adapter 'EmailPublish
er' for tenant id '-1234', Error in message format, null {org.wso2.carbon.event.
output.adapter.email.EmailEventAdapter}
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$EmailSen
der.run(EmailEventAdapter.java:306)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:51
1)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.
java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:617)
        at java.lang.Thread.run(Thread.java:745)

我做过很多试探。我在 wso2is-5.3.0\repository\conf\axis2.xml 中包含了 gmail 的配置。然后我尝试了我们的企业服务器的配置。最后,我编写了一个 java 程序来检查最终的网络配置问题,并且我能够使用 gmail 和我们的内部电子邮件服务器发送电子邮件。 请在这里找到我尝试过的两种配置: GMAIL

 <transportSender name="mailto"
                     class="org.apache.axis2.transport.mail.MailTransportSender">
        <parameter name="mail.smtp.from">********@gmail.com</parameter>
        <parameter name="mail.smtp.user">********</parameter>
        <parameter name="mail.smtp.password">********</parameter>
        <parameter name="mail.smtp.host">smtp.gmail.com</parameter>
        <parameter name="mail.smtp.port">587</parameter>
        <parameter name="mail.smtp.starttls.enable">true</parameter>
        <parameter name="mail.smtp.auth">true</parameter>
</transportSender>

我已经在 gmail 中设置了与接受相关的安全设置 "less secure clients" 并且我能够使用另一个框架(jasper 报告)利用 gmail 帐户。

企业邮件服务器

<transportSender name="mailto"
                     class="org.apache.axis2.transport.mail.MailTransportSender">
        <parameter name="mail.smtp.from">*********</parameter>
        <parameter name="mail.smtp.user">********</parameter>
        <parameter name="mail.smtp.password">*********</parameter>
        <parameter name="mail.smtp.host">mailer.******.it</parameter>
        <parameter name="mail.smtp.port">25</parameter>
        <parameter name="mail.smtp.starttls.enable">false</parameter>
        <parameter name="mail.smtp.auth">true</parameter>
    </transportSender>

提前致谢.. - Giovanni(一个可怜的开发者 :-))

IIRC 我通过向 axis2_client.xml 添加相同的邮件配置以及在同一部分内解决了同样的问题。希望有所帮助。 :)

为了使 WSO2IS 能够发送恢复密码电子邮件以响应仪表板上的用户操作("forgot password" link 在登录页面上)要使用邮件服务器参数编辑的文件是 repository/conf 文件夹内的 output-event-adapters.xml。

我通过

解决了这个问题
  1. 打开安全性较低的应用程序以在 Gmail 帐户中使用 Gmail
  2. 确保您在 WSO2IS 中用于 SMTP 配置的用户名和发件人地址相同 1:e.,

    <parameter name="mail.smtp.from">xyz@gmail.com</parameter>

    <parameter name="mail.smtp.user">xyz@gmail.com</parameter>

从 WSO2 Identity Server 5.3.0 开始,为了发送电子邮件,我们需要将位于 wso2is-5.3.0/repository/conf 目录中的输出事件-adapters.xml 文件更新为以下。更新它并配置 Gmail 帐户接受安全性较低的客户端后,它应该可以工作

<adapterConfig type="email">
    <!-- Comment mail.smtp.user and mail.smtp.password properties to support connecting SMTP servers which use trust
    based authentication rather username/password authentication -->
    <property key="mail.smtp.from">abcd@gmail.com</property>
    <property key="mail.smtp.user">abcd</property>
    <property key="mail.smtp.password">xxxx</property>
    <property key="mail.smtp.host">smtp.gmail.com</property>
    <property key="mail.smtp.port">587</property>
    <property key="mail.smtp.starttls.enable">true</property>
    <property key="mail.smtp.auth">true</property>
    <!-- Thread Pool Related Properties -->
    <property key="minThread">8</property>
    <property key="maxThread">100</property>
    <property key="keepAliveTimeInMillis">20000</property>
    <property key="jobQueueSize">10000</property>
</adapterConfig>

在使用此配置的 webfaction 中,使用 webfaction 的 smtp:

conf/axis2/axis2.xml

<transportSender name="mailto"
                 class="org.apache.axis2.transport.mail.MailTransportSender">
    <parameter name="mail.from">xxxx@xxx.com</parameter>
    <parameter name="mail.smtp.from">xxxx@xxx.com</parameter>
    <parameter name="mail.smtp.submitter">xxxx@xxx.com</parameter>
    <parameter name="mail.transport.protocol">smtp</parameter>
    <parameter name="mail.smtp.user">yyyy</parameter>
    <parameter name="password">zzzzzz</parameter>
    <parameter name="mail.smtp.host">smtp.webfaction.com</parameter>

    <parameter name="mail.smtp.port">25</parameter>
    <parameter name="mail.smtp.auth">true</parameter>
</transportSender>

conf/output-event-adapters.xml

<adapterConfig type="email">
    <!-- Comment mail.smtp.user and mail.smtp.password properties to support connecting SMTP servers which use trust
    based authentication rather username/password authentication -->
    <property key="mail.from">xxxx@xxx.com</property>
    <property key="mail.smtp.from">xxxx@xxx.com</property>
    <property key="mail.smtp.submitter">xxxx@xxx.com</property>
    <property key="mail.smtp.user">yyyy</property>
    <property key="mail.smtp.password">zzzzz</property>
    <property key="mail.smtp.host">smtp.webfaction.com</property>
    <property key="mail.smtp.port">25</property>
    <property key="mail.smtp.auth">true</property>
    <property key="mail.transport.protocol">smtp</property>
    <!-- Thread Pool Related Properties -->
    <property key="minThread">8</property>
    <property key="maxThread">100</property>
    <property key="keepAliveTimeInMillis">20000</property>
    <property key="jobQueueSize">10000</property>
</adapterConfig>