Include & in mail service password
calca Feb 16, 2014 3:24 PMHi Guys.
I am trying to configure the mail service. The password contains and &, and I have been not able to find a way to include it!
It seems this is something with camel, but I reached a point that I have this config:
<mail:binding.mail xmlns:mail="urn:switchyard-component-camel-mail:config:1.0" name="Mail" secure="true">
<mail:host>mailHost</mail:host>
<mail:port>25</mail:port>
<mail:username>user</mail:username>
<mail:password>thEPassword&More</mail:password>
<mail:produce>
<mail:subject>Test</mail:subject>
<mail:from>warn@mymail.com</mail:from>
<mail:to>calcacuervo@gmail.com</mail:to>
</mail:produce>
</mail:binding.mail>
In the mail:password, I tried many things, using CDATA, replacing the & with & or %26, and always getting some error. I debugged until I reached some camel URI helper, org.apache.camel.util.URISupport.normalizeUri(String), and then the parameters gets broken, and I get an error like this:
Caught exception of type org.apache.camel.ResolveEndpointFailedException with message: Failed to resolve endpoint: smtps://email-smtp.us:25?More&from=warn%40me.com&password=thEPassword&subject=Test&to=calcacuervo%40gmail.com&username=ses-smtp-user due to: Failed to resolve endpoint: smtps://email-smtp.com:25?More&from=warn%40me.com&password=thEPassword&subject=Test&to=calcacuervo%40gmail.com&username=ses-smtp-user due to: There are 1 parameters that couldn't be set on the endpoint. Check the uri if the parameters are spelt correctly and that they are properties of the endpoint. Unknown parameters=[{More=null}]
Caused by exception of type org.apache.camel.ResolveEndpointFailedException, message: Failed to resolve endpoint: smtps://email-smtp.us:25?More&from=warn%40me.com&password=thEPassword&subject=Test&to=calcacuervo%40gmail.com&username=ses-smtp-user. due to: There are 1 parameters that couldn't be set on the endpoint. Check the uri if the parameters are spelt correctly and that they are properties of the endpoint. Unknown parameters=[{More=null}]
org.apache.camel.ResolveEndpointFailedException: Failed to resolve endpoint: smtps://email-smtp.us:25?More&from=warn%40me.com&password=thEPassword&subject=Test&to=calcacuervo%40gmail.com&username=ses-smtp-user.20131121-140404 due to: Failed to resolve endpoint: smtps://email-smtp:25?More&from=me.com&password=thEPassword&subject=Test&to=calcacuervo%40gmail.com&username=ses-smtp-user. due to: There are 1 parameters that couldn't be set on the endpoint. Check the uri if the parameters are spelt correctly and that they are properties of the endpoint. Unknown parameters=[{More=null}]
I read that you can use the keyword RAW on camel:
and I tried something like this:
<mail:password>RAW(<![CDATA[thEPassword%26More]]>)</mail:password>
or
<mail:password><![CDATA[RAW(thEPassword%26More)]]></mail:password>
but no luck, the same
5?More%29&from=warn%40me.com&password=RAW%28thEPassword&subject=Test&to=c
Any idea on how I could solve it?
Thanks in advance,
Demian