如何在我的个人电子邮件ID上发送电子邮件来自WSO2 ESB

时间:2016-09-05 04:36:04

标签: wso2 wso2esb

我正在尝试从WSO2 ESB发送电子邮件,并根据一个wos2博客进行配置。我收到错误“MailTransportListener检查邮件的帐户:synapse.demo.1@gmail.com”。我不确定代码中有什么问题,我也可以通过个人电子邮件ID发送电子邮件,这样我就可以知道一切正常。

Synapse Code:

<proxy name="StockQuoteProxy" transports="mailto">

<parameter name="transport.mail.Address">synapse.demo.1@gmail.com</parameter>
<parameter name="transport.mail.Protocol">pop3</parameter>
<parameter name="transport.PollInterval">5</parameter>
<parameter name="mail.pop3.host">pop.gmail.com</parameter>
<parameter name="mail.pop3.port">995</parameter>
<parameter name="mail.pop3.user">synapse.demo.1</parameter>
<parameter name="mail.pop3.password">mailpassword</parameter>
<parameter name="mail.pop3.socketFactory.class">javax.net.ssl.SSLSocketFactory</parameter>
<parameter name="mail.pop3.socketFactory.fallback">false</parameter>
<parameter name="mail.pop3.socketFactory.port">995</parameter>
<parameter name="transport.mail.ContentType">application/xml</parameter>

<target>
    <inSequence>
        <property name="senderAddress" expression="get-property('transport', 'From')"/>
        <log level="full">
            <property name="Sender Address" expression="get-property('senderAddress')"/>
        </log>
        <send>
            <endpoint>
                <address uri="http://localhost:9000/services/SimpleStockQuoteService"/>
            </endpoint>
        </send>
    </inSequence>
    <outSequence>
        <property name="Subject" value="Custom Subject for Response" scope="transport"/>
  <property name="messageType" value="text/plain" scope="axis2-client"/>
<script language="js"><![CDATA[
          mc.setPayloadXML(<ns:text xmlns:ns="http://ws.apache.org/commons/ns/payload">Plain text received!</ns:text>);
   ]]></script>
        <header name="To" expression="fn:concat('mailto:', get-property('senderAddress'))"/>
        <log level="full">
            <property name="message" value="Response message"/>
            <property name="Sender Address" expression="get-property('senderAddress')"/>
        </log>
        <send/>
    </outSequence>
</target>
<publishWSDL uri="file:repository/samples/resources/proxy/sample_proxy_1.wsdl"/>

感谢您的回复。我想要的只是在我点击此服务后发送电子邮件。我的新代码是:

<proxy name="SendEmailService" transports="http" startOnLoad="true" statistics="enable" trace="disable">
    <target inSequence="SendEmailService_IN" />
    <publishWSDL key="SendEmailService_wsdl"/>
</proxy>
<localEntry key="SendEmailService_wsdl" src="file:repository/conf/employee/OverseaseEmployee.wsdl"/>
<sequence name="SendEmailService_IN">
 <property name="Subject" value="Custom Subject for Response" scope="transport"/>
    <property name="ContentType" value="text/plain" scope="axis2"/>
    <property name="OUT_ONLY" value="true" scope="default" type="STRING"/>
     <send>
        <endpoint>
           <address uri="06.shrikant@gmail.com"/>
        </endpoint>
     </send>
   <parameter name="mail.smtp.user">shrikant</parameter>
   <parameter name="transport.mail.Protocol">smtp</parameter>
   <parameter name="transport.mail.Address">06.shrikant@gmail.com</parameter>
   <parameter name="mail.smtp.port">587</parameter>
   <parameter name="mail.smtp.password">pass</parameter>
   <parameter name="transport.mail.ContentType">text/plain</parameter>
   <parameter name="mail.smtp.starttls.enable">true</parameter>
   <parameter name="mail.smtp.auth">true</parameter>
   <parameter name="mail.smtp.from">06.shrikant@gmail.com</parameter>
   <parameter name="mail.smtp.host">smtp.gmail.com</parameter>
 <send/>

</sequence> 

2 个答案:

答案 0 :(得分:1)

这是一个工作代理,用于调用服务并将响应发送到电子邮件地址。在这里,应根据您希望如何调用代理服务来更改transports="http,https"

<?xml version="1.0" encoding="UTF-8"?>
<proxy xmlns="http://ws.apache.org/ns/synapse"
       name="MyPxy"
       transports="http,https"
       statistics="disable"
       trace="disable"
       startOnLoad="true">
   <target>
      <inSequence>
         <send>
            <endpoint>
               <address uri="http://www.mocky.io/v2/57cd173e1200008620bb7826"/>
            </endpoint>
         </send>
      </inSequence>
      <outSequence>
         <property name="Subject"
                   value="Custom Subject for Response"
                   scope="transport"/>
         <property name="ContentType" value="text/plain" scope="axis2"/>
         <property name="OUT_ONLY" value="true" scope="default" type="STRING"/>
         <send>
            <endpoint>
               <address uri="mailto:toemailuser@gmail.com"/>
            </endpoint>
         </send>
         <respond/>
      </outSequence>
   </target>
   <parameter name="mail.smtp.user">fromemailuser</parameter>
   <parameter name="transport.mail.Protocol">smtp</parameter>
   <parameter name="transport.mail.Address">fromemailuser@gmail.com</parameter>
   <parameter name="mail.smtp.port">587</parameter>
   <parameter name="mail.smtp.password">pass</parameter>
   <parameter name="transport.mail.ContentType">text/plain</parameter>
   <parameter name="mail.smtp.starttls.enable">true</parameter>
   <parameter name="mail.smtp.auth">true</parameter>
   <parameter name="mail.smtp.from">fromemailuser@gmail.com</parameter>
   <parameter name="mail.smtp.host">smtp.gmail.com</parameter>
   <description/>
</proxy>

答案 1 :(得分:0)

您可以参考此博客发送包含wso2 esb http://elilsivanesan.blogspot.com/2016/06/mail-transport-with-wso2-esb.html

的电子邮件