Code Igniter email attachment appears but content is empty - html-email

I'm using Code Igniter's email class to add an attachment to an email.
The attachment would appear however it's contents was always empty. I was able to verify (in the email source) that the attachment content is actually present (base64 encoded).
On the SO question linked, Torsten Arendrup answer was the solution which worked. I'm hoping to get some clarification as to why it works.
Codeigniter send email with attach file
In summary it seems that adding a new line after the 'Content-Transfer-Encoding: '(immediately before the attachment content is specified) fixes.
Is it simply that the email source is not formatted properly and bumping the content to the next line fixes this? Or is this a hack which actually does something else?
Thanks

Related

Delphi - Using resource in Email rather than image

In Delphi, I create emails in HTML using the following code to display a signature in the message:
cMsg:= cMsg + ' <img src="BarrysSignature.jpg" '>
Which means I need to have the .jpg available in the current directory (and distribute it with the executable).
I also use these same signature .jpg files elsewhere in my program, but I've loaded them as resources. What would be better in the emails is if I used the resource for the signature in the email, rather than the external .jpg picture.
I've tried a few ways of doing this but can't get it working. Any thoughts, please?
Similar to #Dmitry's answer, in Indy you would also need to attach the image data to an email (the TIdMessage component), assign the attachment's Content-ID header (the TIdMessagePart.ContentID property), and then refer to that ID in the HTML using a cid: URL where needed.
Refer to these blog articles on Indy's website for how to do this:
HTML Messages
New HTML Message Builder class
I do want to mention one thing, though. Where the articles talk about using TIdAttachmentFile for attachments, you actually don't need to save your image resource to a temporary file at all in this situation. You can alternatively derive your own class from TIdAttachment (let's call it TIdAttachmentResource), and have it override the virtual OpenLoadStream() and CloseLoadStream() methods to return/free a TResourceStream to your resource data, respectively (see the source codes for TIdAttachmentFile and TIdAttachmentMemory for examples). Then you can simply add TIdAttachmentResource objects to the TIdMessage.MessageParts collection as needed, and Indy will be able to encode the email using the image resource directly, no file needed.
In Outlook, you will need to extract the resource to a temporary file, add the image as an attachment, set its PR_ATTACH_CONTENT_ID MAPI property, delete the file. Your HTML body would need to reference the image by its content-id, e.g. <img src="cid:xyz">, where "xyz" is the value of the PR_ATTACH_CONTENT_ID property.
See Including Pictures in an Outlook Email

Content-type issue for email attachments mule

I'm using Mule's IMAP connector to read email attachments. I pretty much follow this. It all works fine, but my problem is that there are couple of end users who now tend to send the emails with attachments to us, but with Content-type as 'text/csv' or 'application/octet-stream' in which case Mule is unable to recognise/parse the attachments. The email client like outlook has no problems downloading the files. But does not work with Mule code - probably, the content-type to be blamed but is there a way I can get over this without demanding a change from the end user?
Here is the code that reads the attachments:
<expression-transformer doc:name="Read Attachments and set them as payload"
name="returnAttachments">
<return-argument evaluator="attachments-list"
expression="*" />
</expression-transformer>
<imaps:inbound-endpoint host="${email.server.host}"
port="${email.port}" responseTimeout="10000"
doc:name="IMAP" connector-ref="IMAPS" password="${email.pwd}"
transformer-refs="returnAttachments" user="${email.user}"
disableTransportTransformer="true" />
<!-- The code below does not work when the emails arrived have content type other the "multipart/mixed"-->
<set-variable variableName="fileName" value="#[groovy:payload.name]"
doc:name="fileName" />
As mentioned this one recognises the email and attachments when the content type(header) of the email is "mutipart/mixed". Does not work otherwise. Should I be asking the client to set the content type ?
Your question does not explain what exactly you're trying to do. You can send anything through e-mail. Each attachment is marked with a corresponding MIME type to indicate what sort of data format it contains -- is that an image, or a ZIP file, or perhaps a PDF document?
What is your application doing, and what reaction do you expect when I send, say, a holiday picture as an attachment? What should it do if I attach my bank's statement?
These questoins are about the business logic, about the real purpose of your project. This question does not contain any data about that, unfortunately.

How Unsend.it works?

I was a little bit surprised to see Unsend.it this morning.
How is it possible to unsend or edit a sent email ?
I would like to know technical details of how this works.
Is it possible for us to achieve this through programming ? If possible can anyone present me some code sample ?
They don't actually "un-send" the email. How it works is that the text content of the email is transposed into an image file and the text is removed from the email and replaced with the dynamic image file that contains the transposed text. So it looks like a text email, but is actually an image of the text of your email.
The image is remotely loaded from their servers so if you want to "un-send" the email, they change the image and remove the original text. The email itself remains in the recipients Inboxes', its now just a blank email that has been "un-sent".
Update 2019:
The email is not actually sent, instead they just wait for a cancellation period (which is configurable), to actually send it. So until this time passes, the email is actually sent. So if you click cancel within the timeframe, the email is never sent.

ISO-8859-1Q in attached file

I have a problem with attached file attached in outlook email sent by the console business objects,
his name was prefexé ISO-8859-1Q which causes me a problem opening it.
Need help to evolve. thank you
Sounds like the Filename attribute of the Content-Disposition MIME header included an invalid charset value.
How exactly is the message created and received?

File uploading and email in JSP

I need to make a simple page in JSP. I've never worked in JSP before ever.
I have a form that has two fields: one is a file upload field and the other is a textbox. The user enters one email address in the field and uploads a file and upon submission. I should be able to email the attachment to the email address entered.
I need a quick code snippet that does this.
try to see this code, might need some debugging though :)
or this one from here (through the JavaMail API):
SmtpSender smtp=SmtpSender.getInstance();
MailToBeSent send=new MailToBeSent();
send.setSubject("Hello");
send.setFromAddress("some#bar.com","Someone");
send.addToAddress("another#foo.com","Anotherone");
send.setBody("Hello, test with the file attachment!");
byte[] bin=.....
send.attacheFile(bin,"photo.jpg","image/jpeg");
smtp.sendMail(send);