繁体   English   中英

错误:{EmailSend} - {api:EmailMicroService} 发送 email 时出错

[英]ERROR: {EmailSend} - {api:EmailMicroService} Error occurred while sending the email

场景我在 wso2 的 Email 连接器的帮助下,通过不安全的 smtp 服务器连接发送 email。

联系

<?xml version="1.0" encoding="UTF-8"?>
<localEntry key="unSecureConn" xmlns="http://ws.apache.org/ns/synapse">
    <email.init>
        <requireAuthentication>true</requireAuthentication>
        <connectionType>SMTP</connectionType>
        <password>XXXXX</password>
        <host>smtp.XXXX.com</host>
        <port>25</port>
        <name>unSecureConn</name>
        <username>XXXXXX</username>
    </email.init>
</localEntry>

API:

<?xml version="1.0" encoding="UTF-8"?>
<api context="/email" name="EmailMicroService" port="8290" xmlns="http://ws.apache.org/ns/synapse">
    <resource methods="POST" uri-template="/send">
        <inSequence>
            <log level="full"/>
            <email.send configKey="unSecureConn">
                <from>{json-eval($.from)}</from>
                <to>{json-eval($.to)}</to>
                <subject>{json-eval($.subject)}</subject>
                <content>{json-eval($.content)}</content>
                <contentType>{json-eval($.contentType)}</contentType>
                <attachments>{json-eval($.attachments)}</attachments>
            </email.send>
            <respond/>
        </inSequence>
        <outSequence/>
        <faultSequence/>
    </resource>
</api>

问题我面临中继访问被拒绝的问题。 虽然我们的 smtp 服务器在登录到服务器的用户门户时正在发送电子邮件。 然而,对于 wso2 连接器,我们面临以下问题:

[2022-11-16 13:55:17,526] ERROR {EmailSend} - {api:EmailMicroService} Error occurred while sending the email with subject hi to ayub.jamal@XXXX.com. org.wso2.carbon.connector.exception.EmailConnectionException: Error occurred while sending the email with subject hi to ayub.jamal@XXXX.com.
        at org.wso2.carbon.connector.operations.EmailSend.sendMessage(EmailSend.java:116)
        at org.wso2.carbon.connector.operations.EmailSend.connect(EmailSend.java:59)
        at org.wso2.carbon.connector.core.AbstractConnector.mediate(AbstractConnector.java:32)
        at org.apache.synapse.mediators.ext.ClassMediator.updateInstancePropertiesAndMediate(ClassMediator.java:178)
        at org.apache.synapse.mediators.ext.ClassMediator.mediate(ClassMediator.java:97)
        at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:110)
        at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:72)
        at org.apache.synapse.mediators.template.TemplateMediator.mediate(TemplateMediator.java:136)
        at org.apache.synapse.mediators.template.InvokeMediator.mediate(InvokeMediator.java:170)
        at org.apache.synapse.mediators.template.InvokeMediator.mediate(InvokeMediator.java:93)
        at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:110)
        at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:72)
        at org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:158)
        at org.apache.synapse.api.Resource.process(Resource.java:342)
        at org.apache.synapse.api.API.process(API.java:477)
        at org.apache.synapse.api.AbstractApiHandler.apiProcess(AbstractApiHandler.java:93)
        at org.apache.synapse.api.AbstractApiHandler.dispatchToAPI(AbstractApiHandler.java:71)
        at org.apache.synapse.api.rest.RestRequestHandler.dispatchToAPI(RestRequestHandler.java:90)
        at org.apache.synapse.api.rest.RestRequestHandler.process(RestRequestHandler.java:76)
        at org.apache.synapse.rest.RESTRequestHandler.process(RESTRequestHandler.java:54)
        at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage(Axis2SynapseEnvironment.java:344)
        at org.apache.synapse.core.axis2.SynapseMessageReceiver.receive(SynapseMessageReceiver.java:101)
        at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180)
        at org.apache.synapse.transport.passthru.ServerWorker.processNonEntityEnclosingRESTHandler(ServerWorker.java:376)
        at org.apache.synapse.transport.passthru.ServerWorker.processEntityEnclosingRequest(ServerWorker.java:435)
        at org.apache.synapse.transport.passthru.ServerWorker.run(ServerWorker.java:183)
        at org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
        at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: javax.mail.SendFailedException: Invalid Addresses;
  nested exception is:
        com.sun.mail.smtp.SMTPAddressFailedException: 554 5.7.1 <ayub.jamal@XXXX.com>: Relay access denied

        at com.sun.mail.smtp.SMTPTransport.rcptTo(SMTPTransport.java:2079)
        at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:1301)
        at javax.mail.Transport.send0(Transport.java:255)
        at javax.mail.Transport.send(Transport.java:124)
        at org.wso2.carbon.connector.operations.EmailSend.sendMessage(EmailSend.java:135)
        at org.wso2.carbon.connector.operations.EmailSend.sendMessage(EmailSend.java:110)
        ... 29 more
Caused by: com.sun.mail.smtp.SMTPAddressFailedException: 554 5.7.1 <ayub.jamal@XXXX.com>: Relay access denied

        at com.sun.mail.smtp.SMTPTransport.rcptTo(SMTPTransport.java:1979)
        ... 34 more

尝试将以下参数添加到 init.

<requireTLS>false</requireTLS>

以下是您可以为init操作设置的所有参数。 因此,根据您的 SMTP 服务器,您可能必须设置适当的参数。

<parameter name="host" description="Host name of the mail server"/>
<parameter name="port" description="The port number of the mail server"/>
<parameter name="name" description="Unique name the connection is identified by"/>
<parameter name="username" description="Username used to connect with the mail server"/>
<parameter name="password" description="Password to connect with the mail server"/>
<parameter name="connectionType" description="Email connection type (protocol) that should be used to establish the connection with the server"/>
<parameter name="readTimeout" description="The socket read timeout value"/>
<parameter name="connectionTimeout" description="The socket connection timeout value"/>
<parameter name="writeTimeout" description="The socket write timeout value"/>
<parameter name="requireTLS" description="Whether the connection should be established using TLS"/>
<parameter name="checkServerIdentity" description="Whether server identity should be checked"/>
<parameter name="trustedHosts" description="Comma separated string of trust host names"/>
<parameter name="sslProtocols" description="Comma separated string of SSL protocol"/>
<parameter name="cipherSuites" description="Comma separated string of Cipher Suites"/>
<parameter name="maxActiveConnections" description="Maximum number of active connections in the pool"/>
<parameter name="maxIdleConnections" description="Maximum number of idle connections in the pool"/>
<parameter name="maxWaitTime" description="Maximum time to wait for a pooled component to become available"/>
<parameter name="minEvictionTime" description="The minimum amount of time an object may sit idle in the pool before it is eligible for eviction"/>
<parameter name="evictionCheckInterval" description="The number of milliseconds between runs of the object evictor"/>
<parameter name="exhaustedAction" description="The behavior of the pool when the pool is exhausted."/>
<parameter name="requireAuthentication" description="Whether authentication is required for SMTP server."/>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM