在 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。
我通过
解决了这个问题
- 打开安全性较低的应用程序以在 Gmail 帐户中使用 Gmail
确保您在 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>
我为密码恢复设置电子邮件服务器变得疯狂。
我已遵循密码恢复指南 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。
我通过
解决了这个问题- 打开安全性较低的应用程序以在 Gmail 帐户中使用 Gmail
确保您在
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>