SES sends base64 characters in email body (instead of html) [ basic case] - amazon-ses

I am having issue with html sent vis aws-ses. Every once in a while it sends base64 text in email body. I was able to capture a html that has this problem and could not figure out the issue - hoping if any one else has any idea on how to fix it.
I even created a test case to reproduce this issue.
Test case link: https://drive.google.com/file/d/1LWrnQowI4yLr1nYOSzcCF7_gH1sJ9_ht/view?usp=sharing
I am using java sdk to send email via SES and transmitting HTML to ses server but it sends base64 characters in email body as shown below:
=?UTF-8?B?PCEtLVtpZiBndGUgbXNvIDldPjx4bWw+CiAgICAgPG86T2Zm?= =?UTF-8?B?aWNlRG9jdW1lbnRTZXR0aW5ncz4KICAgICAgPG86QWxsb3dQTg==?= =?UTF-8?B?Ry8+CiAgICAgIDxvOlBpeGVsc1BlckluY2g+OTY8L286UGl4?= =?UTF-8?B?ZWxzUGVySW5jaD4KICAgICA8L286T2ZmaWNlRG9jdW1lbnRTZQ==?= =?UTF-8?B?dHRpbmdzPgogICAgPC94bWw+PCFbZW5kaWZdLS0+CjxodG1s?= =?UTF-8?B?PgogPGhlYWQ+IAogIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbg==?= =?UTF-8?B?dC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9?= =?UTF-8?B?dXRmLTgiIC8+IAogIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjbw==?= =?UTF-8?B?bnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCIgLz4gCiAgPCEt?= =?UTF-8?B?LVtpZiAhbXNvXT48IS0tPiAKICA8bWV0YSBodHRwLWVxdWl2PQ==?= =?UTF-8?B?IlgtVUEtQ29tcGF0aWJsZSIgY29udGVudD0iSUU9ZWRnZSIg?= =?UTF-8?B?Lz4gCiAgPCEtLTwhW2VuZGlmXS0tPiAKICA8dGl0bGU+PC90aQ==?= =?UTF-8?B?dGxlPiAKICA8c3R5bGUgaWQ9Im1lZGlhLXF1ZXJ5IiB0eXBl?= =?UTF-8?B?PSJ0ZXh0L2NzcyI+Ym9keSB7CiAgbWFyZ2luOiAwOwogIHBhZA==?= =?UTF-8?B?ZGluZzogMDsgfQoKdGFibGUsIHRyLCB0ZCB7CiAgdmVydGljYQ==?= =?UTF-8?B?

Related

How can I download an Email using the Gmail api with Go

Trying to use the Go library of the Gmail API (v1) to get the raw content of a email and parse it as a byte slice {[]byte} so I can save it as an email. Any tips?
Looking at the package (https://pkg.go.dev/google.golang.org/api/gmail/v1#Message) it states:
// Raw: The entire email message in an RFC 2822 formatted and base64url
// encoded string. Returned in `messages.get` and `drafts.get` responses
// when the `format=RAW` parameter is supplied.
Get the email using the rfc822msgId. This can be grabbed from the header.
gmailMessageResposne, _ := gmail.Service.Users.Messages.Get("user#email.com", "rfc822msgid").Format("RAW").Do()
Once you have the *gmail.Message object you can decode the raw string via
decodedData, _ := base64.URLEncoding.DecodeString(gmailMessageResposne.Raw)
Then
base64.URLEncoding(decodedData, decodedData)
Finally
ioutile.WriteFile("message.eml", decodedData, os.ModePerm)
This worked for me!

How to handle space in recipient address

I am trying to send email using NodeMailer Node module and IBM Domino server.
I need to send email to a recipient Domino Administrator/test#test but the space in address creates issue.
Because of space in address, Server return error as it considers recipient as Administrator/test#test which does not exists.
Router: Unable to deliver message 0023B889 to Administrator/test#test.
I tried adding ascii characters for space, tried surrounding by extra quotes but nothing worked.
I am initializing mail options in Nodemailer like this
var mailOptions = {
from: 'Domino Administrator/test',
to: 'Domino Administrator/test#test',
subject: 'Sending mail domino 2',
text: 'That was easy!'
};
Any idea how to handle space ? or any changes needs to be done at Domino server side ?
Taking hint from some RFC , I was able to sort this issue by adding '_'. So the code works if recipient address is to: 'Domino_Administrator/test#test'

mailer.send(mimetype='text/html') does not work along with "attachs" - Scrapy

I am creating CSV files and sending as an attachment in email via Gmail SMTP
Here is related code in Scrapy 1.5.1
mailer = MailSender(smtphost='smtp.gmail.com',
mailfrom='noreply#domain.io',
smtpuser='email#gmail.com',
smtppass='PASS', smtpport=587)
attachs.append(("file.csv", "text/csv", csv_buffer))
self.mailer.send(
to=self.mailto,
mimetype='text/html',
subject="Crawler to scrape RELATED domains finished",
body="Please <b>download</b> attached files<br /><br />Crawler Stats<br />" ,
attachs=attachs
)
I simply get raw/unrendered HTML in mail instead of rendered.
If I remove attachs param from send then I get rendered email
I also tried
attachs.append(("file.csv", "text/html", csv_buffer))
but still I get raw html instead of rendered one.

Vb.Net Gmail API Send Message with attachment > 5Mb

On Gmail Api documentation i read that i've to make an HTTP request at "/upload/gmail/v1/users/userId/messages/send" when sending message larger then 5mb but i don't find any example how to implement this using the Client Library in .net
All the examples on the site refer to the "messages.Send" function that takes as parameter a raw message and the user id but i saw that there's another overload that also take the stream of the content to upload and the content type of it.
The problem is that i've no clue how to correctly call it.
Does anyone have successfully achived it ?
Thx for your answer
Simone
Simone, it's means that you use simple upload:
uploadType=media. For quick transfer of smaller files, for example, 5 MB or less.
You must use Multipart upload or Resumable upload (https://developers.google.com/gmail/api/guides/uploads)
You can send a post query with payload (see CURLOPT_POSTFIELDS, if use a CURL) on the https://www.googleapis.com/gmail/v1/users/me/messages/send?access_token=your_access_token&uploadType=multipart. Payload must contain json encoded message. Structure of this message for example:
$message = [
'message' => [
'raw' => str_replace(['+', '/'], ['-', '_'], base64_encode($mimeString)),
'threadId' => $yourThreadId
]
];
Variable $mimeString must contain correct mime string

escape character confusion with mysql and python

I want to upload logo image from http://werkzeug.pocoo.org/
After saving it I tried the following. I'm a noob so please help..
the received stream when i upload through a html forms is
'GIF89a\xa0\x00\xa0\x00\xe3\x08\x00\x01\x03\x00,)\x00JB\x00g`\x00\x96\x8a\x00\xcd\xbc\x00\xe9\xd5\x00\xfd\xeb\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff!\xf9\x04\x01\n\x00\x08\x00,\x00\x00\x00\x00\xa0\x00\xa0\x00\x00\x04\xfe\x10\xc9I\xab\xbd8\xeb\xcd\x11\xf8](\x8edi\x9e\xe8\xf4\xadi\xeb\xbep|\xad\xb4l\xdfx.\xd1\xbc\xee\xff#\x0eo\x18,\x1a}\xc3\xe4q\xc9l%\x05\xca\xa6t\xbaI\x12\x0eP"u\xcbM\x16\x0e\xe0l\x8fKfZ\xc1hq\xad\xcc\x06\x9e\xd1\xe9h{n{\xc3\xd1\x039}\x9f\xb2\xdf\xf1z|\x82"~\x7f\x80Z\x83\x89UCW\x86\x86y\x88\x8a\x92\x14\x85\x8ep\x90c\x93\x93\x95\x96\x97\x81\x9a|\x9c\x9d\x9e\x91\xa0tI\x03\xa3\xaa\x98k\xa6s\xa2\xaaw\x04\x9f\xaeT\xb0\xb1\xb2\xb4\xb5fC\xa9\xb8\xb1\x06\xb3\xa5\xbbK\xa8\xbf\xc7\xc2\x99\xc4G\xc6\xc7\xc8\xba\xcb9\xcd\xce\xcf\xc3\xd18\xd3\xd4\xd5\xca\xd77\xd9\xda\xdb\xad\xdd2\xdf\xe0\xe1,\xe31\xe5\xe6\xe7 \xe9.\xa8\x06\xec\xec\xc9\xe2\xef%O\xf3\xfa\xf5\xe8\xf7$\xf9\xfa\xf6A\xf37c\x88\x00y\x01\xf5\x15\x18HP\x85A\x84\t\x152$\x080b\xc2\x85\xd6\x1az0h\xb1#Fn\xfe\x1a\x9f#\xecxq\xe2\xb5$\x01F\x92,\x99q\x1c\xca\x950?\xdaK\'\x12fL\x93\xa6P\xaa\xb4i\xd1\x00\xceMCR\xf2\xe4\xe9\xb3e\xce\xa0;\x87z\x0c`\x14(\x0f\xa1J\x87\x16`\n\x12\x94\xce\xa8Qe\xf6;\xfa4)\xd6\x95S\x9b\xeeI\x02\xc0k#\x03\xc1\x08\x0c\x10\xc0v\x00\x81\x02f\x15R\x9d9\xe8\xea\xca`n\xd5\xe6\x1d\xc0T\xad\x00\x02q\xcd\x85\xad:\xd6K\xcc\x00\x7f\xbf\x1c0P`\xc0\x80`l\xdf\xaa\xbd;wk(\xa4D\x19;\x06\x8c\x86\x00`\x01\x01\xd62}\xdc\xd1#ew\x97\x87(\xc6\xba\x90\xf3\x81\xa9P\x19\xabu\x1d\xf14\x80\xd4<\x02\x83\x05 \x00\x0c\x81\x83\x86\x1a\x93d\x85\x9a\r\xca\xd5_\xc1,l\xdc\xdb\x92\xf0\x8e\xc4o\x1b7\x9c<\x97/G\xf2<\x93$p\xba\x0cY\xddC\'[\x82\xe8v{\xf7-d\x91WG\x13\x00\xaa\xa3\xd5\x02\xd4\x07\xe4N\xb8H\xfa\xf5\x7fL\xf3\xee\xc4\x18\x8c\x01\xe0\xd0\x89\xfe%\ru\xf8\xdd\x81\xd1u\xc1y\xe6\x19\x80\x16E\xc7\x8bj\x05:"L#\xef\xd1\x80`B\xff\t\xa8\x0e\x81\x11\xfe\x91\x85|p\xd4CaD\x19\xd6W\xc7-\x11~\x14\x97l\xdc\xdd\xa5Fq\x03B\xd8\xa1%\xc90\xd8\xc9\x85\x16\xbd(]\x8c<\x8c8c.\x16:\xa7 \x8e9j\x88\x0f\x87?\xc2\xa1\xd5\x07\x17\x06\x83\xc6T\xe0\xb1\xa3\xa37(FX\x94\x1d\xfaQh\x00i<9\xb8!#I\x1a\xc2\x0f\x84W\x96\xe5\x1fwk\xf9\xd8\xa0\x91\x8b\x80\x19&\x90dQ\xc5\xcfc\xffq6\x8b\x9a\x11y\xd9\x07\x92o\x8eI\xc3\x17~\xb9%F\x1eZ\x8ef\x93\x9e&\x90\x85g\x92~\xae#$\x16447[Z\x87\xb2II\x95\x056\xca\xe4x\x95\t0\x80b\xf2<\x9a\x10\xa2!(\xfa&\x9c/uR\x8f\x8d\x07,\x9a\'\x9b\xa6\x9ezH\x9c\x81a\xe2\xde\x99J\x91\x9a\x01Y\xa2\xce\xa8\xe9\x07 \xde\x81\x89|\xb4\xf14\xa6\x10\x98\xae\x17\x0cY+\xfe\xb8\n\x87~\x01\xfc\xf1\xa99Qvf\x94\xa2\xd5&\x17]\x8f\xbf,\xd4\\g\xce\x8e\xb2P*\xd5\xea\xba\xc3:In\x1b\xe43\x08\x05\x13l,\x1f\xf5*\xe60\xbc\xca\xea\x9f\x8e<|{\x0c_\x9b\xb1\xf3\x11\xab\xb1\x1c\xebP/\xf6.\x86/\r\xb7\xae\'gg\xef\xce;F\xbd\xf6\x96\xc8\xac\x99)\xae\x80\x900\r{8\xf1\xba\xb2\xea\xb7q\xc6\xb9\xae\xe0\xdf\\ \x83\xa1.\xc1\x11\xdb\xe6&~h\xb5\xda\xacr\x7f\xae\xa2\x04G\x1d{<q\xb8D!\xf6\x1a\r\x8d#\x92\xb0\xb4r\xac\x1cf\x99\xcc\xea[\x9d\xc7\xbd\xb1\xd2\x9e\xc5\xa3\xf8Y\x01\xcaI\x0e6\xb1\xd1GGj\xf3\n\x01\xb8\x8a\x96\xd3\x16\x08]\xf1\xc6\x1fd\xdb\x93\x7fV+\x9d\xf1\xb6\xbb\xf2 \xafRK~W\xa0i\xc0\xc9D\xaeg s\x9d6\xc7\xeb\xb5\x9d,IH\x93\xfd2.vk\x00\xf5W\x8c\x81\xfd\x01\xce6\xc9\xd4\xdc\xbf\x80\xff4xT\xbf\xe2\x9d\xdc\x7f\xcb\xae \xa9\xc8\xfe\xaa\x04\xde\xc1\xe3<\xe9\xfd\x10\xcbT\x15n\xf9\x96\x1fP\xfd\x87\xe6\xa5\xaa\r\xb9\xe1\x00\xfc\x1c\x95\xc7\xbe4\x1a\x18\xea\x84\xa8-\xb63\x9e\x0fq\xfbYT\xa5R#oc\x86K\xfb\x08\x9c\x93\xc8:\x00%\xf3\xdd\xbb\xcb\xfb\r\x16#\xc6\xc3\xff\x93/L\'s\x8b\xdf\xa0\xc9|!O\x01 \xb7\xfd\xa5\xe5|\xb3\x8e8\xdfo\x19\x96G\xc9\xd1\x9f\xf0\xb9\xf1`\x9b\xaeT\x86\xe5\xf3|\x80\xcf\x99\xffD\xfc\xf4\xecO\xbd\xfb<6\x03f\xa1\xcf\x81\xf1\x1e\x8fJ\xb7\xbfGL\xccuC\xb9\x9a\xef03\x1e\x01\xea`}\x12\xa1\x95\xb2N\xe3\x8b2!\xf0I\xf6C\x01\x04\xe7\xd1\xa8\xe4\xf5\x84*\xa1\xd9\xd4b0rA\x98YjOV\xbb\x88\x18B\xc32\x12\x92\x0e\x00\xe4\n\xcd\xef\x02\x98Ax\xe4\xab\x80\x1d;\xc8\x0c\xe7\xc7$\xd8\xa9\xc2\x81\xcc\xb8a\xc1\x9c\x91%R\x80\xe6\x03%\xdc\xd9\t\xbfG\xc0!\xfe"\x0b\x08"N\x12\x89\x06\xa3\x07a\r\x87?\xca\x82\xfe\xbe\x94F\xc3%R\taXd\xd9c\x92\x11"\xace\xecjU\x9c\x02\x03\x9dx\x07h]\xc9-\x17k\x9dn\xa6\xd4\x865\xb21\x0cX;Mh\xe8\xa6\n:\xbe\xa2+w\xc4\xe0\xc6\x92\xf8;/\x06\xc1\x8e\x05\xa3\x1b\xd1\x8e\x88\xc4\x00\xda&\x11H\t\xa3\x8b\x9a%\x93\x940\'cR\xb3\x0cn\x1a\x99\xb2\xdcX\x10<\x99L\xe3&\xc3v*4\x9aIq\xaa0%Wb\x96$\x8f}\xe6p\x80)\xca\x14\x1f\xe9\x8a\xa0x\xd0&6\xfb\x82\xd2\xde\x02\xb06\xd2\xb2\x16I\x90$\xb5x\xd8\xac*\xa9r\x19\xc1|\x1bb^\x885\xfa\xb4\xee\x8c\xbfD\xa6\x8c&\xb70V\xf4l\x96\x86<\xc54_\xb7<]\xcao1\xa3\x90\x98&\xa3\xc1\'\x98\xf4m\x16\xa9\xb0f*\xfd\xf8\x0e\xc3\x08\x13;T\xe9\x8d\x8a\x889Ev\xde\xa3\x9c$\xaa\xc7\xb0\xe6\xb7\xa5\xe7\xa9"\x9a\x14Q\xcd;\x9f\x85\x98\xe0\xf10%\x81\x11\xa7(\xef\xb9M\x0ce\xc13A\x02`\x1f\xfe\xb3\xb9\xca\x15\xdc\x12\x17\x98`^\xe9\x90xF{jd`\xdf\xd4G\xcb|\xc8\x8f$B\xcaD!\xf1\x9a6\x8a\xf8\x91+$\xc3\x9f\xfc\xf1\xe8G\x9f\xa6\xd2c\xd8,>\x12\x9d\x85I\xcd5S\x9a\xf2\xe0\xa2\xcfb\xc4\xf2ZuF\x9e\xf6\xd4\xa7!\xa5\x860T\x96<\xa3\x1e\x15\xa9\x7f\xc3\x85i|!\xa7\xd3\xb8OX\x14\xf5G\xb2<\xf6\xbc\x03it\xa7Y\r\xa8\xf5\xc4U\x19\xb5\x00\xeb5\xa0\x01\x99S\x9fz\xb7\xa4\x8eGi\x9c\x04\xe7(\xd6\xca\xd6\xb6F\x95\xac\xc53 J\xeb*\xb8\xbc\xe6G\x8a\xa9\x14\x18_\xd5W\xd3\xf7\x80P\xada\xad+\xba\x1c\xc1\x17\xdd\x08v\xb0(t\xab#\xf6\n\xd9\xd4\xa9.!\x8f\xad\xac\x13\xfc\xda\x0e\xcd\x92\x83\xb3\x01K\xacgA\xea(sdv\xb4/X\xac\xaaD\x8b\xdaK]\xf6\x17\xa7m-\x0c*R?\xca\xca\x96\xb0\xf8k\x1ako\xdb\xb5\r\xfeaI\xbc\xfdAM\x1cF\x97\xe0\x9eH\x88\xcf\x02\xaeq\xdd0\xb0A\xe5.\x97\xb9\xc8u\xees\xa1k5\xe9N\x97\xbaX\xdb\xedu\x915\xb1\xedZQ\xbb\xde\xdd\\\r\xc3;[\xdb\x92\x17\x1b\xe3<\xaf\x11\x16\x1a\x8d\x08\x00\x00;'
I receive the above using req.file["name"] and store it in the Mysql.
now when i read back from MySQL I get,
u'GIF89axa0x00xa0x00xe3x08x00x01x03x00,)x00JBx00g`x00x96x8ax00xcdxbcx00xe9xd5x00xfdxebx00xffxffxffxffxffxffxffxffxffxffxffxffxffxffxffxffxffxffxffxffxffxffxffxff!xf9x04x01\nx00x08x00,x00x00x00x00xa0x00xa0x00x00x04xfex10xc9Ixabxbd8xebxcdx11xf8](x8edix9exe8xf4xadixebxbep|xadxb4lxdfx.xd1xbcxeexff#x0eox18,x1a}xc3xe4qxc9l%x05xcaxa6txbaIx12x0eP"uxcbMx16x0exe0lx8fKfZxc1hqxadxccx06x9exd1xe9h{n{xc3xd1x039}x9fxb2xdfxf1z|x82"~x7fx80Zx83x89UCWx86x86yx88x8ax92x14x85x8epx90cx93x93x95x96x97x81x9a|x9cx9dx9ex91xa0tIx03xa3xaax98kxa6sxa2xaawx04x9fxaeTxb0xb1xb2xb4xb5fCxa9xb8xb1x06xb3xa5xbbKxa8xbfxc7xc2x99xc4Gxc6xc7xc8xbaxcb9xcdxcexcfxc3xd18xd3xd4xd5xcaxd77xd9xdaxdbxadxdd2xdfxe0xe1,xe31xe5xe6xe7 xe9.xa8x06xecxecxc9xe2xef%Oxf3xfaxf5xe8xf7$xf9xfaxf6Axf37cx88x00yx01xf5x15x18HPx85Ax84\tx152$x080bxc2x85xd6x1az0hxb1#Fnxfex1ax9f#xecxqxe2xb5$x01Fx92,x99qx1cxcax950?xdaK\'x12fLx93xa6Pxaaxb4ixd1x00xceMCRxf2xe4xe9xb3excexa0;x87zx0c`x14(x0fxa1Jx87x16`\nx12x94xcexa8Qexf6;xfa4)xd6x95Sx9bxeeIx02xc0k#x03xc1x08x0cx10xc0vx00x81x02fx15Rx9d9xe8xeaxca`nxd5xe6x1dxc0Txadx00x02qxcdx85xad:xd6Kxccx00x7fxbfx1c0P`xc0x80`lxdfxaaxbd;wk(xa4Dx19;x06x8cx86x00`x01x01xd62}xdcxd1#ewx97x87(xc6xbax90xf3x81xa9Px19xabux1dxf14x80xd4<x02x83x05 x00x0cx81x83x86x1ax93dx85x9a\rxcaxd5_xc1,lxdcxdbx92xf0x8exc4ox1b7x9c<x97/Gxf2<x93$pxbax0cYxddC\'[x82xe8v{xf7-dx91WGx13x00xaaxa3xd5x02xd4x07xe4Nxb8Hxfaxf5x7fLxf3xeexc4x18x8cx01xe0xd0x89xfe%\ruxf8xddx81xd1uxc1yxe6x19x80x16Exc7x8bjx05:"L#xefxd1x80`Bxff\txa8x0ex81x11xfex91x85|pxd4CaDx19xd6Wxc7-x11~x14x97lxdcxddxa5Fqx03Bxd8xa1%xc90xd8xc9x85x16xbd(]x8c<x8c8c.x16:xa7 x8e9jx88x0fx87?xc2xa1xd5x07x17x06x83xc6Txe0xb1xa3xa37(FXx94x1dxfaQhx00i<9xb8!#Ix1axc2x0fx84Wx96xe5x1fwkxf9xd8xa0x91x8bx80x19&x90dQxc5xcfcxffq6x8bx9ax11yxd9x07x92ox8eIxc3x17~xb9%Fx1eZx8efx93x9e&x90x85gx92~xae#$x16447[Zx87xb2IIx95x056xcaxe4xx95\t0x80bxf2<x9ax10xa2!(xfa&x9c/uRx8fx8dx07,x9a\'x9bxa6x9ezHx9cx81axe2xdex99Jx91x9ax01Yxa2xcexa8xe9x07 xdex81x89|xb4xf14xa6x10x98xaex17x0cY+xfexb8\nx87~x01xfcxf1xa99Qvfx94xa2xd5&x17]x8fxbf,xd4\\gxcex8exb2P*xd5xeaxbaxc3:Inx1bxe43x08x05x13l,x1fxf5*xe60xbcxcaxeax9fx8e<|{x0c_x9bxb1xf3x11xabxb1x1cxebP/xf6.x86/\rxb7xae\'ggxefxce;Fxbdxf6x96xc8xacx99)xaex80x900\r{8xf1xbaxb2xeaxb7qxc6xb9xaexe0xdf\\ x83xa1.xc1x11xdbxe6&~hxb5xdaxacrx7fxaexa2x04Gx1d{<qxb8D!xf6x1a\rx8d#x92xb0xb4rxacx1cfx99xccxea[x9dxc7xbdxb1xd2x9exc5xa3xf8Yx01xcaIx0e6xb1xd1GGjxf3\nx01xb8x8ax96xd3x16x08]xf1xc6x1fdxdbx93x7fV+x9dxf1xb6xbbxf2 xafRK~Wxa0ixc0xc9Dxaeg sx9d6xc7xebxb5x9d,IHx93xfd2.vkx00xf5Wx8cx81xfdx01xce6xc9xd4xdcxbfx80xff4xTxbfxe2x9dxdcx7fxcbxae xa9xc8xfexaax04xdexc1xe3<xe9xfdx10xcbTx15nxf9x96x1fPxfdx87xe6xa5xaa\rxb9xe1x00xfcx1cx95xc7xbe4x1ax18xeax84xa8-xb63x9ex0fqxfbYTxa5R#ocx86Kxfbx08x9cx93xc8:x00%xf3xddxbbxcbxfb\rx16#xc6xc3xffx93/L\'sx8bxdfxa0xc9|!Ox01 xb7xfdxa5xe5|xb3x8e8xdfox19x96Gxc9xd1x9fxf0xb9xf1`x9bxaeTx86xe5xf3|x80xcfx99xffDxfcxf4xecOxbdxfb<6x03fxa1xcfx81xf1x1ex8fJxb7xbfGLxccuCxb9x9axef03x1ex01xea`}x12xa1x95xb2Nxe3x8b2!xf0Ixf6Cx01x04xe7xd1xa8xe4xf5x84*xa1xd9xd4b0rAx98YjOVxbbx88x18Bxc32x12x92x0ex00xe4\nxcdxefx02x98Axxe4xabx80x1d;xc8x0cxe7xc7$xd8xa9xc2x81xccxb8axc1x9cx91%Rx80xe6x03%xdcxd9\txbfGxc0!xfe"x0bx08"Nx12x89x06xa3x07a\rx87?xcax82xfexbex94Fxc3%R\taXdxd9cx92x11"xacexecjUx9cx02x03x9dxx07h]xc9-x17kx9dnxa6xd4x865xb21x0cX;Mhxe8xa6\n:xbexa2+wxc4xe0xc6x92xf8;/x06xc1x8ex05xa3x1bxd1x8ex88xc4x00xda&x11H\txa3x8bx9a%x93x940\'cRxb3x0cnx1ax99xb2xdcXx10<x99Lxe3&xc3v*4x9aIqxaa0%Wbx96$x8f}xe6px80)xcax14x1fxe9x8axa0xxd0&6xfbx82xd2xdex02xb06xd2xb2x16Ix90$xb5xxd8xac*xa9rx19xc1|x1bb^x885xfaxb4xeex8cxbfDxa6x8c&xb70Vxf4lx96x86<xc54_xb7<]xcao1xa3x90x98&xa3xc1\'x98xf4mx16xa9xb0f*xfdxf8x0exc3x08x13;Txe9x8dx8ax889Evxdexa3x9c$xaaxc7xb0xe6xb7xa5xe7xa9"x9ax14Qxcd;x9fx85x98xe0xf10%x81x11xa7(xefxb9Mx0cexc13Ax02`x1fxfexb3xb9xcax15xdcx12x17x98`^xe9x90xF{jd`xdfxd4Gxcb|xc8x8f$BxcaD!xf1x9a6x8axf8x91+$xc3x9fxfcxf1xe8Gx9fxa6xd2cxd8,>x12x9dx85Ixcd5Sx9axf2xe0xa2xcfbxc4xf2ZuFx9exf6xd4xa7!xa5x860Tx96<xa3x1ex15xa9x7fxc3x85i|!xa7xd3xb8OXx14xf5Gxb2<xf6xbcx03itxa7Y\rxa8xf5xc4Ux19xb5x00xeb5xa0x01x99Sx9fzxb7xa4x8eGix9cx04xe7(xd6xcaxd6xb6Fx95xacxc53 Jxeb*xb8xbcxe6Gx8axa9x14x18_xd5Wxd3xf7x80Pxadaxad+xbax1cxc1x17xddx08vxb0(txab#xf6\nxd9xd4xa9.!x8fxadxacx13xfcxdax0excdx92x83xb3x01KxacgAxea(sdvxb4/XxacxaaDx8bxdaK]xf6x17xa7m-x0c*R?xcaxcax96xb0xf8kx1akoxdbxb5\rxfeaIxbcxfdAMx1cFx97xe0x9eHx88xcfx02xaeqxdd0xb0Axe5.x97xb9xc8uxeesxa1k5xe9Nx97xbaXxdbxedux915xb1xedZQxbbxdexdd\\\rxc3;[xdbx92x17x1bxe3<xafx11x16x1ax8dx08x00x00;'
All the escape characters are gone now, i want to display this file and i'm not able to on the HTML after i send a response.
Why is this happening and how can I fix this ? I'm not able to get through this for more than a week.
I'm using python2.7.3 and werkzeug and mysql-connector for python.
The example code in one of the github uses this
'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\n='
This works perfectly and its all normal text.. how can i get this one. ?
I found what was wrong, For anyone with the same problem.. File upload sends in hex format or raw strings when received. The uploaded file stream needs to be Encoded with 'base64' and stored in mysql. Mysql tries to remove the escape characters when trying to store the raw strings so the stream needs to be encoded.
req.file.stream.read().encode('base64')
when sending the file to the client decode and set the mime type of the content as response.
This solved my issue.