already fixed (http://marc.theaimsgroup.com/?l=axis-dev&m=108180386421197&w=2).
pick  up a nightly build.

-- dims

On Fri, 11 Jun 2004 13:16:51 +0200, Pascal Prioux <[EMAIL PROTECTED]> wrote:
> 
> Hi
> I use axis 1.2 Beta release.
> I've succcessfully deployed and runned a .Net C++ client and  a java Swing
> Axis client using the wsdl generated by axis 1.2 Beta with
> the axis-java2wsdl Ant task using style="rpc" as parameter
> 
> I've a problem with wscompile tool bundled  in the Micro Edition Wireless
> ToolKit 2.1
> I use the  axis-java2wsdl Ant task using style="document" and use="literal"
> as parameter for generating a WSI-BasicProfile compliant wsdl file
> 
> My question is: Can Axis generated a WSI-BasicProfile compliant wsdl file
> and ho can i do this ?
> 
> I get the folowwing error when ruuning wscompile  on the axis generated wsdl
> file:
> 
> warning: R2716 WSI-BasicProfile ver. 1.0, namespace attribute not allowed in
> doc/lit for soapbind:body: "loadMIDPRecordStore"
> warning: R2716 WSI-BasicProfile ver. 1.0, namespace attribute not allowed in
> doc/lit for soapbind:body: "loadMIDPRecordStore"
> warning: R2716 WSI-BasicProfile ver. 1.0, namespace attribute not allowed in
> doc/lit for soapbind:body: "getMIDPRecordStoreRecord"
> warning: R2716 WSI-BasicProfile ver. 1.0, namespace attribute not allowed in
> doc/lit for soapbind:body: "getMIDPRecordStoreRecord"
> warning: R2716 WSI-BasicProfile ver. 1.0, namespace attribute not allowed in
> doc/lit for soapbind:body: "getVectorOfMIDPRecordStoreRecord"
> warning: R2716 WSI-BasicProfile ver. 1.0, namespace attribute not allowed in
> doc/lit for soapbind:body: "getVectorOfMIDPRecordStoreRecord"
> warning: ignoring operation "getVectorOfMIDPRecordStoreRecord": more than
> one part in input message
> warning: R2716 WSI-BasicProfile ver. 1.0, namespace attribute not allowed in
> doc/lit for soapbind:body: "getArrayOfMIDPRecordStoreRecord"
> warning: R2716 WSI-BasicProfile ver. 1.0, namespace attribute not allowed in
> doc/lit for soapbind:body: "getArrayOfMIDPRecordStoreRecord"
> warning: ignoring operation "getArrayOfMIDPRecordStoreRecord": more than one
> part in input message
> warning: R2716 WSI-BasicProfile ver. 1.0, namespace attribute not allowed in
> doc/lit for soapbind:body: "getMIDPDataLenth"
> warning: R2716 WSI-BasicProfile ver. 1.0, namespace attribute not allowed in
> doc/lit for soapbind:body: "getMIDPDataLenth"
> warning: R2716 WSI-BasicProfile ver. 1.0, namespace attribute not allowed in
> doc/lit for soapbind:body: "getMIDPRecordCount"
> warning: R2716 WSI-BasicProfile ver. 1.0, namespace attribute not allowed in
> doc/lit for soapbind:body: "getMIDPRecordCount"
> warning: R2716 WSI-BasicProfile ver. 1.0, namespace attribute not allowed in
> doc/lit for soapbind:body: "login"
> warning: R2716 WSI-BasicProfile ver. 1.0, namespace attribute not allowed in
> doc/lit for soapbind:body: "login"
> warning: R2716 WSI-BasicProfile ver. 1.0, namespace attribute not allowed in
> doc/lit for soapbind:body: "logout"
> warning: R2716 WSI-BasicProfile ver. 1.0, namespace attribute not allowed in
> doc/lit for soapbind:body: "logout"
> warning: R2716 WSI-BasicProfile ver. 1.0, namespace attribute not allowed in
> doc/lit for soapbind:body: "initSession"
> warning: R2716 WSI-BasicProfile ver. 1.0, namespace attribute not allowed in
> doc/lit for soapbind:body: "initSession"
> warning: R2716 WSI-BasicProfile ver. 1.0, namespace attribute not allowed in
> doc/lit for soapbind:body: "setSessionTimeOut"
> warning: R2716 WSI-BasicProfile ver. 1.0, namespace attribute not allowed in
> doc/lit for soapbind:body: "setSessionTimeOut"
> warning: R2716 WSI-BasicProfile ver. 1.0, namespace attribute not allowed in
> doc/lit for soapbind:body: "sendMail"
> warning: R2716 WSI-BasicProfile ver. 1.0, namespace attribute not allowed in
> doc/lit for soapbind:body: "sendMail"
> warning: ignoring operation "sendMail": more than one part in input message
> error: Found unknown simple type: byte[]
> 
> Here is the axis generated wsdl file:
> 
> <?xml version="1.0" encoding="UTF-8"?>
> <wsdl:definitions targetNamespace="urn:jmeprovisioning-rpc-service"
> xmlns:apachesoap="http://xml.apache.org/xml-soap";
> xmlns:impl="urn:jmeprovisioning-rpc-service"
> xmlns:intf="urn:jmeprovisioning-rpc-service"
> xmlns:tns1="event.control.entreprise.server.tools.enitab"
> xmlns:tns2="http://event.control.entreprise.server.tools.enitab";
> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";
> xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/";
> xmlns:xsd="http://www.w3.org/2001/XMLSchema";>
> <!--WSDL created by Apache Axis version: 1.2beta
> Built on Mar 31, 2004 (12:47:03 EST)-->
>  <wsdl:types>
>   <schema elementFormDefault="qualified"
> targetNamespace="urn:jmeprovisioning-rpc-service"
> xmlns="http://www.w3.org/2001/XMLSchema";>
>    <element name="_recordStoreIdentifier" type="xsd:string"/>
>    <element name="_recordIndex" type="xsd:int"/>
>    <element name="getMIDPRecordStoreRecordReturn" type="xsd:base64Binary"/>
>    <element name="_startRecordIndex" type="xsd:int"/>
>    <element name="_endRecordIndex" type="xsd:int"/>
>    <element name="getVectorOfMIDPRecordStoreRecordReturn"
> type="apachesoap:Vector"/>
>    <element name="getArrayOfMIDPRecordStoreRecordReturn"
> type="xsd:base64Binary"/>
>    <element name="getMIDPDataLenthReturn" type="xsd:long"/>
>    <element name="getMIDPRecordCountReturn" type="xsd:long"/>
>    <element name="_loginEvent" type="tns1:ESTLoginEvent"/>
>    <element name="_clientApplicationName" type="xsd:string"/>
>    <element name="initSessionReturn" type="xsd:string"/>
>    <element name="_sessionTimeOut" type="xsd:int"/>
>    <element name="_toEMailAddress" type="xsd:string"/>
>    <element name="_fromEMailAddress" type="xsd:string"/>
>    <element name="_fromPersonalEMailAddress" type="xsd:string"/>
>    <element name="_subject" type="xsd:string"/>
>    <element name="_body" type="xsd:string"/>
>    <element name="_synchronousMode" type="xsd:boolean"/>
>   </schema>
>   <schema elementFormDefault="qualified"
> targetNamespace="http://xml.apache.org/xml-soap";
> xmlns="http://www.w3.org/2001/XMLSchema";>
>    <complexType name="Vector">
>     <sequence>
>      <element maxOccurs="unbounded" minOccurs="0" name="item"
> type="xsd:anyType"/>
>     </sequence>
>    </complexType>
>   </schema>
>   <schema elementFormDefault="qualified"
> targetNamespace="http://event.control.entreprise.server.tools.enitab";
> xmlns="http://www.w3.org/2001/XMLSchema";>
>    <complexType name="ESTServerEventSupport">
>     <sequence>
>      <element name="eventName" nillable="true" type="xsd:string"/>
>     </sequence>
>    </complexType>
>   </schema>
>   <schema elementFormDefault="qualified"
> targetNamespace="event.control.entreprise.server.tools.enitab"
> xmlns="http://www.w3.org/2001/XMLSchema";>
>    <complexType name="ESTLoginEvent">
>     <complexContent>
>      <extension base="tns2:ESTServerEventSupport">
>       <sequence>
>        <element name="identifier" nillable="true" type="xsd:string"/>
>        <element name="password" nillable="true" type="xsd:string"/>
>       </sequence>
>      </extension>
>     </complexContent>
>    </complexType>
>   </schema>
>  </wsdl:types>
> 
>    <wsdl:message name="getVectorOfMIDPRecordStoreRecordResponse">
> 
>       <wsdl:part element="impl:getVectorOfMIDPRecordStoreRecordReturn"
> name="getVectorOfMIDPRecordStoreRecordReturn"/>
> 
>    </wsdl:message>
> 
>    <wsdl:message name="sendMailRequest">
> 
>       <wsdl:part element="impl:_toEMailAddress" name="_toEMailAddress"/>
> 
>       <wsdl:part element="impl:_fromEMailAddress" name="_fromEMailAddress"/>
> 
>       <wsdl:part element="impl:_fromPersonalEMailAddress"
> name="_fromPersonalEMailAddress"/>
> 
>       <wsdl:part element="impl:_subject" name="_subject"/>
> 
>       <wsdl:part element="impl:_body" name="_body"/>
> 
>       <wsdl:part element="impl:_synchronousMode" name="_synchronousMode"/>
> 
>    </wsdl:message>
> 
>    <wsdl:message name="getArrayOfMIDPRecordStoreRecordRequest">
> 
>       <wsdl:part element="impl:_startRecordIndex" name="_startRecordIndex"/>
> 
>       <wsdl:part element="impl:_endRecordIndex" name="_endRecordIndex"/>
> 
>    </wsdl:message>
> 
>    <wsdl:message name="loadMIDPRecordStoreResponse">
> 
>    </wsdl:message>
> 
>    <wsdl:message name="getVectorOfMIDPRecordStoreRecordRequest">
> 
>       <wsdl:part element="impl:_startRecordIndex" name="_startRecordIndex"/>
> 
>       <wsdl:part element="impl:_endRecordIndex" name="_endRecordIndex"/>
> 
>    </wsdl:message>
> 
>    <wsdl:message name="getMIDPDataLenthRequest">
> 
>    </wsdl:message>
> 
>    <wsdl:message name="getMIDPRecordCountResponse">
> 
>       <wsdl:part element="impl:getMIDPRecordCountReturn"
> name="getMIDPRecordCountReturn"/>
> 
>    </wsdl:message>
> 
>    <wsdl:message name="setSessionTimeOutRequest">
> 
>       <wsdl:part element="impl:_sessionTimeOut" name="_sessionTimeOut"/>
> 
>    </wsdl:message>
> 
>    <wsdl:message name="loginRequest">
> 
>       <wsdl:part element="impl:_loginEvent" name="_loginEvent"/>
> 
>    </wsdl:message>
> 
>    <wsdl:message name="getMIDPRecordStoreRecordRequest">
> 
>       <wsdl:part element="impl:_recordIndex" name="_recordIndex"/>
> 
>    </wsdl:message>
> 
>    <wsdl:message name="getMIDPRecordStoreRecordResponse">
> 
>       <wsdl:part element="impl:getMIDPRecordStoreRecordReturn"
> name="getMIDPRecordStoreRecordReturn"/>
> 
>    </wsdl:message>
> 
>    <wsdl:message name="getMIDPRecordCountRequest">
> 
>    </wsdl:message>
> 
>    <wsdl:message name="sendMailResponse">
> 
>    </wsdl:message>
> 
>    <wsdl:message name="setSessionTimeOutResponse">
> 
>    </wsdl:message>
> 
>    <wsdl:message name="logoutResponse">
> 
>    </wsdl:message>
> 
>    <wsdl:message name="initSessionRequest">
> 
>       <wsdl:part element="impl:_clientApplicationName"
> name="_clientApplicationName"/>
> 
>    </wsdl:message>
> 
>    <wsdl:message name="loadMIDPRecordStoreRequest">
> 
>       <wsdl:part element="impl:_recordStoreIdentifier"
> name="_recordStoreIdentifier"/>
> 
>    </wsdl:message>
> 
>    <wsdl:message name="logoutRequest">
> 
>    </wsdl:message>
> 
>    <wsdl:message name="getArrayOfMIDPRecordStoreRecordResponse">
> 
>       <wsdl:part element="impl:getArrayOfMIDPRecordStoreRecordReturn"
> name="getArrayOfMIDPRecordStoreRecordReturn"/>
> 
>    </wsdl:message>
> 
>    <wsdl:message name="initSessionResponse">
> 
>       <wsdl:part element="impl:initSessionReturn" name="initSessionReturn"/>
> 
>    </wsdl:message>
> 
>    <wsdl:message name="loginResponse">
> 
>    </wsdl:message>
> 
>    <wsdl:message name="getMIDPDataLenthResponse">
> 
>       <wsdl:part element="impl:getMIDPDataLenthReturn"
> name="getMIDPDataLenthReturn"/>
> 
>    </wsdl:message>
> 
>    <wsdl:portType name="SoapJMEProvisioningSession">
> 
>       <wsdl:operation name="loadMIDPRecordStore"
> parameterOrder="_recordStoreIdentifier">
> 
>          <wsdl:input message="impl:loadMIDPRecordStoreRequest"
> name="loadMIDPRecordStoreRequest"/>
> 
>          <wsdl:output message="impl:loadMIDPRecordStoreResponse"
> name="loadMIDPRecordStoreResponse"/>
> 
>       </wsdl:operation>
> 
>       <wsdl:operation name="getMIDPRecordStoreRecord"
> parameterOrder="_recordIndex">
> 
>          <wsdl:input message="impl:getMIDPRecordStoreRecordRequest"
> name="getMIDPRecordStoreRecordRequest"/>
> 
>          <wsdl:output message="impl:getMIDPRecordStoreRecordResponse"
> name="getMIDPRecordStoreRecordResponse"/>
> 
>       </wsdl:operation>
> 
>       <wsdl:operation name="getVectorOfMIDPRecordStoreRecord"
> parameterOrder="_startRecordIndex _endRecordIndex">
> 
>          <wsdl:input message="impl:getVectorOfMIDPRecordStoreRecordRequest"
> name="getVectorOfMIDPRecordStoreRecordRequest"/>
> 
>          <wsdl:output
> message="impl:getVectorOfMIDPRecordStoreRecordResponse"
> name="getVectorOfMIDPRecordStoreRecordResponse"/>
> 
>       </wsdl:operation>
> 
>       <wsdl:operation name="getArrayOfMIDPRecordStoreRecord"
> parameterOrder="_startRecordIndex _endRecordIndex">
> 
>          <wsdl:input message="impl:getArrayOfMIDPRecordStoreRecordRequest"
> name="getArrayOfMIDPRecordStoreRecordRequest"/>
> 
>          <wsdl:output message="impl:getArrayOfMIDPRecordStoreRecordResponse"
> name="getArrayOfMIDPRecordStoreRecordResponse"/>
> 
>       </wsdl:operation>
> 
>       <wsdl:operation name="getMIDPDataLenth">
> 
>          <wsdl:input message="impl:getMIDPDataLenthRequest"
> name="getMIDPDataLenthRequest"/>
> 
>          <wsdl:output message="impl:getMIDPDataLenthResponse"
> name="getMIDPDataLenthResponse"/>
> 
>       </wsdl:operation>
> 
>       <wsdl:operation name="getMIDPRecordCount">
> 
>          <wsdl:input message="impl:getMIDPRecordCountRequest"
> name="getMIDPRecordCountRequest"/>
> 
>          <wsdl:output message="impl:getMIDPRecordCountResponse"
> name="getMIDPRecordCountResponse"/>
> 
>       </wsdl:operation>
> 
>       <wsdl:operation name="login" parameterOrder="_loginEvent">
> 
>          <wsdl:input message="impl:loginRequest" name="loginRequest"/>
> 
>          <wsdl:output message="impl:loginResponse" name="loginResponse"/>
> 
>       </wsdl:operation>
> 
>       <wsdl:operation name="logout">
> 
>          <wsdl:input message="impl:logoutRequest" name="logoutRequest"/>
> 
>          <wsdl:output message="impl:logoutResponse" name="logoutResponse"/>
> 
>       </wsdl:operation>
> 
>       <wsdl:operation name="initSession"
> parameterOrder="_clientApplicationName">
> 
>          <wsdl:input message="impl:initSessionRequest"
> name="initSessionRequest"/>
> 
>          <wsdl:output message="impl:initSessionResponse"
> name="initSessionResponse"/>
> 
>       </wsdl:operation>
> 
>       <wsdl:operation name="setSessionTimeOut"
> parameterOrder="_sessionTimeOut">
> 
>          <wsdl:input message="impl:setSessionTimeOutRequest"
> name="setSessionTimeOutRequest"/>
> 
>          <wsdl:output message="impl:setSessionTimeOutResponse"
> name="setSessionTimeOutResponse"/>
> 
>       </wsdl:operation>
> 
>       <wsdl:operation name="sendMail" parameterOrder="_toEMailAddress
> _fromEMailAddress _fromPersonalEMailAddress _subject _body
> _synchronousMode">
> 
>          <wsdl:input message="impl:sendMailRequest" name="sendMailRequest"/>
> 
>          <wsdl:output message="impl:sendMailResponse"
> name="sendMailResponse"/>
> 
>       </wsdl:operation>
> 
>    </wsdl:portType>
> 
>    <wsdl:binding name="servicesSoapBinding"
> type="impl:SoapJMEProvisioningSession">
> 
>       <wsdlsoap:binding style="document"
> transport="http://schemas.xmlsoap.org/soap/http"/>
> 
>       <wsdl:operation name="loadMIDPRecordStore">
> 
>          <wsdlsoap:operation soapAction=""/>
> 
>          <wsdl:input name="loadMIDPRecordStoreRequest">
> 
>             <wsdlsoap:body namespace="urn:jmeprovisioning-rpc-service"
> use="literal"/>
> 
>          </wsdl:input>
> 
>          <wsdl:output name="loadMIDPRecordStoreResponse">
> 
>             <wsdlsoap:body namespace="urn:jmeprovisioning-rpc-service"
> use="literal"/>
> 
>          </wsdl:output>
> 
>       </wsdl:operation>
> 
>       <wsdl:operation name="getMIDPRecordStoreRecord">
> 
>          <wsdlsoap:operation soapAction=""/>
> 
>          <wsdl:input name="getMIDPRecordStoreRecordRequest">
> 
>             <wsdlsoap:body namespace="urn:jmeprovisioning-rpc-service"
> use="literal"/>
> 
>          </wsdl:input>
> 
>          <wsdl:output name="getMIDPRecordStoreRecordResponse">
> 
>             <wsdlsoap:body namespace="urn:jmeprovisioning-rpc-service"
> use="literal"/>
> 
>          </wsdl:output>
> 
>       </wsdl:operation>
> 
>       <wsdl:operation name="getVectorOfMIDPRecordStoreRecord">
> 
>          <wsdlsoap:operation soapAction=""/>
> 
>          <wsdl:input name="getVectorOfMIDPRecordStoreRecordRequest">
> 
>             <wsdlsoap:body namespace="urn:jmeprovisioning-rpc-service"
> use="literal"/>
> 
>          </wsdl:input>
> 
>          <wsdl:output name="getVectorOfMIDPRecordStoreRecordResponse">
> 
>             <wsdlsoap:body namespace="urn:jmeprovisioning-rpc-service"
> use="literal"/>
> 
>          </wsdl:output>
> 
>       </wsdl:operation>
> 
>       <wsdl:operation name="getArrayOfMIDPRecordStoreRecord">
> 
>          <wsdlsoap:operation soapAction=""/>
> 
>          <wsdl:input name="getArrayOfMIDPRecordStoreRecordRequest">
> 
>             <wsdlsoap:body namespace="urn:jmeprovisioning-rpc-service"
> use="literal"/>
> 
>          </wsdl:input>
> 
>          <wsdl:output name="getArrayOfMIDPRecordStoreRecordResponse">
> 
>             <wsdlsoap:body namespace="urn:jmeprovisioning-rpc-service"
> use="literal"/>
> 
>          </wsdl:output>
> 
>       </wsdl:operation>
> 
>       <wsdl:operation name="getMIDPDataLenth">
> 
>          <wsdlsoap:operation soapAction=""/>
> 
>          <wsdl:input name="getMIDPDataLenthRequest">
> 
>             <wsdlsoap:body namespace="urn:jmeprovisioning-rpc-service"
> use="literal"/>
> 
>          </wsdl:input>
> 
>          <wsdl:output name="getMIDPDataLenthResponse">
> 
>             <wsdlsoap:body namespace="urn:jmeprovisioning-rpc-service"
> use="literal"/>
> 
>          </wsdl:output>
> 
>       </wsdl:operation>
> 
>       <wsdl:operation name="getMIDPRecordCount">
> 
>          <wsdlsoap:operation soapAction=""/>
> 
>          <wsdl:input name="getMIDPRecordCountRequest">
> 
>             <wsdlsoap:body namespace="urn:jmeprovisioning-rpc-service"
> use="literal"/>
> 
>          </wsdl:input>
> 
>          <wsdl:output name="getMIDPRecordCountResponse">
> 
>             <wsdlsoap:body namespace="urn:jmeprovisioning-rpc-service"
> use="literal"/>
> 
>          </wsdl:output>
> 
>       </wsdl:operation>
> 
>       <wsdl:operation name="login">
> 
>          <wsdlsoap:operation soapAction=""/>
> 
>          <wsdl:input name="loginRequest">
> 
>             <wsdlsoap:body namespace="urn:jmeprovisioning-rpc-service"
> use="literal"/>
> 
>          </wsdl:input>
> 
>          <wsdl:output name="loginResponse">
> 
>             <wsdlsoap:body namespace="urn:jmeprovisioning-rpc-service"
> use="literal"/>
> 
>          </wsdl:output>
> 
>       </wsdl:operation>
> 
>       <wsdl:operation name="logout">
> 
>          <wsdlsoap:operation soapAction=""/>
> 
>          <wsdl:input name="logoutRequest">
> 
>             <wsdlsoap:body namespace="urn:jmeprovisioning-rpc-service"
> use="literal"/>
> 
>          </wsdl:input>
> 
>          <wsdl:output name="logoutResponse">
> 
>             <wsdlsoap:body namespace="urn:jmeprovisioning-rpc-service"
> use="literal"/>
> 
>          </wsdl:output>
> 
>       </wsdl:operation>
> 
>       <wsdl:operation name="initSession">
> 
>          <wsdlsoap:operation soapAction=""/>
> 
>          <wsdl:input name="initSessionRequest">
> 
>             <wsdlsoap:body namespace="urn:jmeprovisioning-rpc-service"
> use="literal"/>
> 
>          </wsdl:input>
> 
>          <wsdl:output name="initSessionResponse">
> 
>             <wsdlsoap:body namespace="urn:jmeprovisioning-rpc-service"
> use="literal"/>
> 
>          </wsdl:output>
> 
>       </wsdl:operation>
> 
>       <wsdl:operation name="setSessionTimeOut">
> 
>          <wsdlsoap:operation soapAction=""/>
> 
>          <wsdl:input name="setSessionTimeOutRequest">
> 
>             <wsdlsoap:body namespace="urn:jmeprovisioning-rpc-service"
> use="literal"/>
> 
>          </wsdl:input>
> 
>          <wsdl:output name="setSessionTimeOutResponse">
> 
>             <wsdlsoap:body namespace="urn:jmeprovisioning-rpc-service"
> use="literal"/>
> 
>          </wsdl:output>
> 
>       </wsdl:operation>
> 
>       <wsdl:operation name="sendMail">
> 
>          <wsdlsoap:operation soapAction=""/>
> 
>          <wsdl:input name="sendMailRequest">
> 
>             <wsdlsoap:body namespace="urn:jmeprovisioning-rpc-service"
> use="literal"/>
> 
>          </wsdl:input>
> 
>          <wsdl:output name="sendMailResponse">
> 
>             <wsdlsoap:body namespace="urn:jmeprovisioning-rpc-service"
> use="literal"/>
> 
>          </wsdl:output>
> 
>       </wsdl:operation>
> 
>    </wsdl:binding>
> 
>    <wsdl:service name="SoapJMEProvisioningSessionService">
> 
>       <wsdl:port binding="impl:servicesSoapBinding" name="services">
> 
>          <wsdlsoap:address
> location="http://ppx-ps.enitab.fr:8080/jmeprovisioning/control/services"/>
> 
>       </wsdl:port>
> 
>    </wsdl:service>
> 
> </wsdl:definitions>
> 
> Thanks in advance
> Pascal PRIOUX
> 
> 




-- 
Davanum Srinivas - http://webservices.apache.org/~dims/

Reply via email to