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 + 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+WBUus2qBS8">
>> a+b
>>
>> (note the " 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 +. 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 [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.
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> 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.