Done: https://issues.jenkins-ci.org/browse/JENKINS-22713

Thanks for your help/time, man!  Let me know if I can do anything to
fix/resolve this.

Thx, S


On Mon, Apr 21, 2014 at 6:41 PM, Slide <[email protected]> wrote:

> File an issue and I'll get to it when I can.
>
>
> On Mon, Apr 21, 2014 at 4:12 PM, Stephan Lips <[email protected]>wrote:
>
>> Hmmm.  So I looked at the src for CssInliner.  Most interesting is that
>> if the attribute data-inline="true" is set on an <img> node, the image is
>> retrieved, base64-encoded, and included inline.  So I did a li'l test,
>> where I referenced an image via URL, setting data-inline="true".  And lo
>> and behold, the resulting base64-encoded string that arrived in my inbox
>> had .... the '+' characters replaced with &#43; (prohibiting it from
>> rendering)
>>
>> Other than that, the only code that explicitly deals with the '+' for
>> replacement is line 135:
>> String trimmedStylesheet = stylesheet.replaceAll("\n", "").replaceAll(
>> "/\\*.*?\\*/", "").replaceAll(" +", " ");
>> and would not apply, due to the leading space.
>>
>> So looks like this issue manifests itself with use of the data-inline
>> attribute, making that feature essentially unusable.  In general,
>> base64-encoded strings (or '+' chars anywhere in the email content) do not
>> work with ext-email.
>>
>> So where/how do we go from here? ;)
>>
>> Thx, S
>>
>>
>>
>> On Mon, Apr 21, 2014 at 5:43 PM, Slide <[email protected]> wrote:
>>
>>> Hmm, actually, it looks like the CssInliner could be doing something. It
>>> processes anything that is text/html. I had forgotten about that because I
>>> didn't write that part. There is currently not a way to turn it off.
>>>
>>>
>>> On Mon, Apr 21, 2014 at 3:24 PM, Stephan Lips <[email protected]>wrote:
>>>
>>>> Nope, does not make a difference.  I blank'd out all fields in the
>>>> default email configuration, and configured the ext-email plug-in
>>>> overrides.  '+' characters in email content still arrive as &#43;
>>>>
>>>> Is some jenkins/ext-email dependency doing this?
>>>>
>>>> Thx, S
>>>>
>>>>
>>>> On Mon, Apr 21, 2014 at 3:59 PM, Slide <[email protected]> wrote:
>>>>
>>>>> Email-ext DOES have it's own server configuration, you just have to
>>>>> check "override default settings" in the global config. That would be
>>>>> another thing to try, overriding the default settings so that the session
>>>>> is created completely in email-ext.
>>>>>
>>>>>
>>>>> On Mon, Apr 21, 2014 at 12:37 PM, Stephan Lips <[email protected]
>>>>> > wrote:
>>>>>
>>>>>> If I check 'save to workspace' the '+' chars are not being escaped
>>>>>> with &#43;.
>>>>>>
>>>>>> FWIW, I also tried a couple different email providers (my corporate
>>>>>> smtp server, and google), in both cases the arriving email had the '+'
>>>>>> substituted for &#34.  Since ext-email does not have its own mail server
>>>>>> configuration, I assume it is piggy-backing of the standard email
>>>>>> configuration/server.  Is this substitution happening further downstream,
>>>>>> e.g. in the regular email code?
>>>>>>
>>>>>> Thx, S
>>>>>>
>>>>>>
>>>>>> On Mon, Apr 21, 2014 at 2:16 PM, Slide <[email protected]> wrote:
>>>>>>
>>>>>>> I don't know of anything in the email-ext code that would escape
>>>>>>> anything like you are describing. Can you try checking the "save to
>>>>>>> workspace" checkbox in the project settings and see if the same 
>>>>>>> escaping is
>>>>>>> shown in the saved off file?
>>>>>>>
>>>>>>>
>>>>>>> On Mon, Apr 21, 2014 at 11:08 AM, Stephan Lips <
>>>>>>> [email protected]> wrote:
>>>>>>>
>>>>>>>> Yes, the issue reproduces with a template.  Curiously, when testing
>>>>>>>> the template (through the 'Email Template Testing' link in the 
>>>>>>>> workspace),
>>>>>>>> the inserted base64 string renders correctly.  The received email, 
>>>>>>>> however,
>>>>>>>> still sees the &#43; escapes instead of the '+' char, causing the 
>>>>>>>> base64
>>>>>>>> img src to not render.
>>>>>>>>
>>>>>>>> The template I'm using (saved to $JENKINS_HOME/email-templates) is
>>>>>>>>
>>>>>>>> <TABLE>
>>>>>>>>   <TR><TD align="right"><IMG
>>>>>>>> SRC="${rooturl}static/e59dfe28/images/32x32/<%= 
>>>>>>>> build.result.toString() ==
>>>>>>>> 'SUCCESS' ? "blue.gif" : build.result.toString() == 'FAILURE' ? 
>>>>>>>> 'red.gif' :
>>>>>>>> 'yellow.gif' %>" />
>>>>>>>>   </TD><TD valign="center"><B style="font-size: 200%;">BUILD
>>>>>>>> ${build.result}</B></TD></TR>
>>>>>>>>   <TR><TD>Build URL</TD><TD><A
>>>>>>>> href="${rooturl}${build.url}">${rooturl}${build.url}</A></TD></TR>
>>>>>>>>   <TR><TD>Project:</TD><TD>${project.name}</TD></TR>
>>>>>>>>   <TR><TD>Date of build:</TD><TD>${it.timestampString}</TD></TR>
>>>>>>>>   <TR><TD>Build duration:</TD><TD>${build.durationString}</TD></TR>
>>>>>>>> </TABLE>
>>>>>>>> <BR/>
>>>>>>>>
>>>>>>>>
>>>>>>>> <img src="data:image/png;base64,<%=
>>>>>>>> build.getParent().getWorkspace().child("my-image.b64").readToString() 
>>>>>>>> %>"
>>>>>>>> width="700" height="400">
>>>>>>>>
>>>>>>>>
>>>>>>>> The file 'my-image.b64' is confirmed to exist in the workspace, and
>>>>>>>> contain valid base64.  The contents of the file are inserted correctly,
>>>>>>>> save for the html-escaped '+' char.
>>>>>>>>
>>>>>>>> So, how do I turn off html escaping of content?
>>>>>>>>
>>>>>>>> Thx, S
>>>>>>>>
>>>>>>>>
>>>>>>>> On Mon, Apr 21, 2014 at 9:59 AM, Slide <[email protected]>wrote:
>>>>>>>>
>>>>>>>>> Yes, I'd like you to try and see if the issue occurs with a
>>>>>>>>> template.
>>>>>>>>> On Apr 21, 2014 6:49 AM, "Stephan Lips" <[email protected]>
>>>>>>>>> wrote:
>>>>>>>>>
>>>>>>>>>> It reproduces without any templates.  Simply put the following in
>>>>>>>>>> the 'Default Content' field of the ext-email configuration:
>>>>>>>>>>
>>>>>>>>>> <img src='data:image/png;base64,ley2Rz+WBUus2qBS8'/>
>>>>>>>>>> a+b
>>>>>>>>>>
>>>>>>>>>> The email received will show the above as
>>>>>>>>>>
>>>>>>>>>> <img src="data:image/png;base64,ley2Rz&#43;WBUus2qBS8">
>>>>>>>>>> a&#43;b
>>>>>>>>>>
>>>>>>>>>> (note the &#34; in place of the '+' signs).
>>>>>>>>>>
>>>>>>>>>> Thx,
>>>>>>>>>>
>>>>>>>>>> - S
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On Fri, Apr 18, 2014 at 8:37 PM, Slide <[email protected]>wrote:
>>>>>>>>>>
>>>>>>>>>>> Can you try using a groovy template instead of just trying to
>>>>>>>>>>> generate the HTML yourself? I'm not sure why the text is being 
>>>>>>>>>>> encoded like
>>>>>>>>>>> you mention. I can try and recreate if you send the file you are 
>>>>>>>>>>> using and
>>>>>>>>>>> the template.
>>>>>>>>>>> On Apr 18, 2014 5:48 PM, "stephanl" <[email protected]>
>>>>>>>>>>> wrote:
>>>>>>>>>>>
>>>>>>>>>>>> So then, do you know if there is a way to send a base64 as-is
>>>>>>>>>>>> in an email?  E.g. without being html-escaped implicitly?  Looks 
>>>>>>>>>>>> like some
>>>>>>>>>>>> macro tokens support this, through the escapeHtml attribute.  I 
>>>>>>>>>>>> did not see
>>>>>>>>>>>> anything in the ext-email code base suggesting there is a global
>>>>>>>>>>>> option/switch, or for individual fields.  But I also did not see 
>>>>>>>>>>>> on cursory
>>>>>>>>>>>> glance where the html escaping occurs, so is there an option 
>>>>>>>>>>>> somewhere else?
>>>>>>>>>>>>
>>>>>>>>>>>> Thx, S
>>>>>>>>>>>>
>>>>>>>>>>>> On Friday, April 18, 2014 4:08:36 PM UTC-5, slide wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>> There is no capability to add a different content type.
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> On Fri, Apr 18, 2014 at 1:16 PM, stephanl <[email protected]
>>>>>>>>>>>>> > wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>>> HTML (text/html).  For grins, I tried Plain Text
>>>>>>>>>>>>>> (text/plain), in which case the base64 string was included 
>>>>>>>>>>>>>> un-escaped, but
>>>>>>>>>>>>>> (of course) not recognized/rendered as image when the containing 
>>>>>>>>>>>>>> email was
>>>>>>>>>>>>>> viewed.  In the configuration section of the ext-email plugin 
>>>>>>>>>>>>>> these are the
>>>>>>>>>>>>>> only two options (text/html and text/plain).  If another 
>>>>>>>>>>>>>> content-type is
>>>>>>>>>>>>>> required, how do I add it (UI does not show option to add addt'l 
>>>>>>>>>>>>>> content
>>>>>>>>>>>>>> types, using latest jenkins and ext-email versions), and what 
>>>>>>>>>>>>>> should it be?
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Thx, S
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> On Friday, April 18, 2014 3:08:05 PM UTC-5, slide wrote:
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> What is your content type set to in the settings?
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> On Fri, Apr 18, 2014 at 12:52 PM, stephanl <
>>>>>>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Not using templates.  Tried using
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> <img src='data:image/png;base64, ${FILE,
>>>>>>>>>>>>>>>> path="my-base64-encoded-png.b64"}' width="900"
>>>>>>>>>>>>>>>> height="550"/>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> in the 'Default Content' section/field of the ext-email
>>>>>>>>>>>>>>>> plugin.  Also tried using
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> def reportPath = build.getWorkspace().child("my
>>>>>>>>>>>>>>>> -base64-encoded-png.b64")
>>>>>>>>>>>>>>>> msg.setContent("<img src='data:image/png;base64," +
>>>>>>>>>>>>>>>> reportPath.readToString() + "'/>", "text/html");
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>  as pre-send script (also in the ext-email plugin, Advanced
>>>>>>>>>>>>>>>> section).  From what I can tell, the html encoding occurs 
>>>>>>>>>>>>>>>> after the default
>>>>>>>>>>>>>>>> content and pre-send scripts have been processed/executed.  
>>>>>>>>>>>>>>>> Which would
>>>>>>>>>>>>>>>> apply to templates as well, no?
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Thx, S
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> On Friday, April 18, 2014 12:31:05 PM UTC-5, slide wrote:
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Are you using a groovy or jelly template, or generating
>>>>>>>>>>>>>>>>> the HTML yourself?
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> On Fri, Apr 18, 2014 at 10:20 AM, stephanl <
>>>>>>>>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> Howdy,
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> I am trying to embed a base64 img src in the body/content
>>>>>>>>>>>>>>>>>> of an ext-email notification, like so:
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> <img src='data:image/png;base64, ${FILE,
>>>>>>>>>>>>>>>>>> path="my-base64-encoded-png.b64"}' width="900"
>>>>>>>>>>>>>>>>>> height="550"/>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> The email I receive has all '+' characters in the
>>>>>>>>>>>>>>>>>> included base64 string escaped as &#43;.  I tried to set the 
>>>>>>>>>>>>>>>>>> email content
>>>>>>>>>>>>>>>>>> in a pre-send groovy script, like so:
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> def reportPath = build.getWorkspace().child("my
>>>>>>>>>>>>>>>>>> -base64-encoded-png.b64")
>>>>>>>>>>>>>>>>>> msg.setContent("<img src='data:image/png;base64," +
>>>>>>>>>>>>>>>>>> reportPath.readToString() + "'/>", "text/html");
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>  and still see the escapes for the '+' in the email
>>>>>>>>>>>>>>>>>> received.  I do not see an option to turn off html escaping 
>>>>>>>>>>>>>>>>>> (except for a
>>>>>>>>>>>>>>>>>> few macro tokens, which I am not using).
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> Any insights/advice on how I can embed a base64 image in
>>>>>>>>>>>>>>>>>> an email without triggeriung automatic encoding of the 
>>>>>>>>>>>>>>>>>> base64 string?  And
>>>>>>>>>>>>>>>>>> no, referencing the image by URL is not an option, 
>>>>>>>>>>>>>>>>>> unfortunately.  Last,
>>>>>>>>>>>>>>>>>> for grins I have included verbatim strings in the email 
>>>>>>>>>>>>>>>>>> body/content, like
>>>>>>>>>>>>>>>>>> 'A+B' and "A+B", in all cases the '+' character arrived 
>>>>>>>>>>>>>>>>>> encoded.
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> TIA,
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> - S
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> --
>>>>>>>>>>>>>>>>>> You received this message because you are subscribed to
>>>>>>>>>>>>>>>>>> the Google Groups "Jenkins Users" group.
>>>>>>>>>>>>>>>>>> To unsubscribe from this group and stop receiving emails
>>>>>>>>>>>>>>>>>> from it, send an email to jenkinsci-use...@googlegroups.
>>>>>>>>>>>>>>>>>> com.
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> For more options, visit https://groups.google.com/d/op
>>>>>>>>>>>>>>>>>> tout.
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> --
>>>>>>>>>>>>>>>>> Website: http://earl-of-code.com
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>  --
>>>>>>>>>>>>>>>> You received this message because you are subscribed to the
>>>>>>>>>>>>>>>> Google Groups "Jenkins Users" group.
>>>>>>>>>>>>>>>> To unsubscribe from this group and stop receiving emails
>>>>>>>>>>>>>>>> from it, send an email to [email protected]
>>>>>>>>>>>>>>>> .
>>>>>>>>>>>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> --
>>>>>>>>>>>>>>> Website: http://earl-of-code.com
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>  --
>>>>>>>>>>>>>> You received this message because you are subscribed to the
>>>>>>>>>>>>>> Google Groups "Jenkins Users" group.
>>>>>>>>>>>>>> To unsubscribe from this group and stop receiving emails from
>>>>>>>>>>>>>> it, send an email to [email protected].
>>>>>>>>>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> --
>>>>>>>>>>>>> Website: http://earl-of-code.com
>>>>>>>>>>>>>
>>>>>>>>>>>>  --
>>>>>>>>>>>> You received this message because you are subscribed to the
>>>>>>>>>>>> Google Groups "Jenkins Users" group.
>>>>>>>>>>>> To unsubscribe from this group and stop receiving emails from
>>>>>>>>>>>> it, send an email to
>>>>>>>>>>>> [email protected].
>>>>>>>>>>>>
>>>>>>>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>>>>>>>
>>>>>>>>>>>  --
>>>>>>>>>>> You received this message because you are subscribed to a topic
>>>>>>>>>>> in the Google Groups "Jenkins Users" group.
>>>>>>>>>>> To unsubscribe from this topic, visit
>>>>>>>>>>> https://groups.google.com/d/topic/jenkinsci-users/cwLvSKlxO3I/unsubscribe
>>>>>>>>>>> .
>>>>>>>>>>> To unsubscribe from this group and all its topics, send an email
>>>>>>>>>>> to [email protected].
>>>>>>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>  --
>>>>>>>>>> You received this message because you are subscribed to the
>>>>>>>>>> Google Groups "Jenkins Users" group.
>>>>>>>>>> To unsubscribe from this group and stop receiving emails from it,
>>>>>>>>>> send an email to [email protected].
>>>>>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>>>>>
>>>>>>>>>  --
>>>>>>>>> You received this message because you are subscribed to a topic in
>>>>>>>>> the Google Groups "Jenkins Users" group.
>>>>>>>>> To unsubscribe from this topic, visit
>>>>>>>>> https://groups.google.com/d/topic/jenkinsci-users/cwLvSKlxO3I/unsubscribe
>>>>>>>>> .
>>>>>>>>> To unsubscribe from this group and all its topics, send an email
>>>>>>>>> to [email protected].
>>>>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>>>>
>>>>>>>>
>>>>>>>>  --
>>>>>>>> You received this message because you are subscribed to the Google
>>>>>>>> Groups "Jenkins Users" group.
>>>>>>>> To unsubscribe from this group and stop receiving emails from it,
>>>>>>>> send an email to [email protected].
>>>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Website: http://earl-of-code.com
>>>>>>>
>>>>>>> --
>>>>>>> You received this message because you are subscribed to a topic in
>>>>>>> the Google Groups "Jenkins Users" group.
>>>>>>> To unsubscribe from this topic, visit
>>>>>>> https://groups.google.com/d/topic/jenkinsci-users/cwLvSKlxO3I/unsubscribe
>>>>>>> .
>>>>>>> To unsubscribe from this group and all its topics, send an email to
>>>>>>> [email protected].
>>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>>
>>>>>>
>>>>>>  --
>>>>>> You received this message because you are subscribed to the Google
>>>>>> Groups "Jenkins Users" group.
>>>>>> To unsubscribe from this group and stop receiving emails from it,
>>>>>> send an email to [email protected].
>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Website: http://earl-of-code.com
>>>>>
>>>>> --
>>>>> You received this message because you are subscribed to a topic in the
>>>>> Google Groups "Jenkins Users" group.
>>>>> To unsubscribe from this topic, visit
>>>>> https://groups.google.com/d/topic/jenkinsci-users/cwLvSKlxO3I/unsubscribe
>>>>> .
>>>>> To unsubscribe from this group and all its topics, send an email to
>>>>> [email protected].
>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>
>>>>
>>>>  --
>>>> You received this message because you are subscribed to the Google
>>>> Groups "Jenkins Users" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>> an email to [email protected].
>>>> For more options, visit https://groups.google.com/d/optout.
>>>>
>>>
>>>
>>>
>>> --
>>> Website: http://earl-of-code.com
>>>
>>> --
>>> You received this message because you are subscribed to a topic in the
>>> Google Groups "Jenkins Users" group.
>>> To unsubscribe from this topic, visit
>>> https://groups.google.com/d/topic/jenkinsci-users/cwLvSKlxO3I/unsubscribe
>>> .
>>> To unsubscribe from this group and all its topics, send an email to
>>> [email protected].
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>>  --
>> You received this message because you are subscribed to the Google Groups
>> "Jenkins Users" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>
>
> --
> Website: http://earl-of-code.com
>
> --
> You received this message because you are subscribed to a topic in the
> Google Groups "Jenkins Users" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/jenkinsci-users/cwLvSKlxO3I/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to
> [email protected].
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to