- What is the major difference between the Full and Lite versions?
- Why does the Lite version not use my attachment’s name when saving?
- What is a .bin file? Once it saves should I be able to open it?
- How does AttachSave work?
- Why does the attachment size reported by Gmail change after I save the file?
- Why does an image attachment size get smaller using the Gmail app with “Preview & AttachSave” vs. “Download”?
- My epub eBook file will not work with Gmail’s Preview or even after using AttachSave to download it to the SD card.
- Why do I get “cannot fetch attachment” when … ?
- Why does it only save some of the attachment, but not all of it?
- Why does the full version act like Lite when working with Gmail 2.3.5+?
What is the major difference between the Full and Lite versions?
The full version has permission to read your email so that it knows the attachment’s given filename. The Full version will also remember your last download folder.
Why does the Lite version not use my attachment’s name when saving?
AttachSave only receives the file contents and does not know anything about the file itself (like its name or how large it is). In order to find out that information, the app needs permission to read a portion of your email. Some people do not want to give out that permission lightly, so I made a free version of AttachSave that tries to guess at a possible name for the attachment.
What is a .bin file? Once it saves should I be able to open it?
AttachSave Lite (and Full with Gmail v2.3.5+) will try to guess at what kind of extension the file should have based on the type of file contents it received (audio, video, zip, Android package, etc.). If Lite fails to guess, then it will add “.bin” as a last resort, but at least it will have tried to figure out what kind of file you are saving. Opening files is based completely by the extension the filenames have since computers are too dumb to know what is meant by all that jumble of ones and zeros without being told what it is supposed to mean.
How does AttachSave work?
Inside the Gmail app, you click on the Preview button for the attachment. Gmail will then fetch the attachment from the Google servers and download it to a locked storage area on your phone which is not on the SD card. Once the attachment arrives in that locked memory space, then Gmail will try to Preview it. At this point is when AttachSave gets a chance to intercept the Preview and lets you copy the attachment data out of the locked storage area and onto your SD card. If Gmail’s initial download from the internet to the locked storage area fails, there is nothing that can be done about it. My own experience has been that Gmail will fail to download attachments greater than about 2 or 3 megabytes in size, though this may be affected by the internal memory size of the phone as well as with the number of apps installed.
AttachSave is given the contents of your attachment “as is” without any additional information like its filename or how large it is.
The full version of AttachSave will then ask the email app for permission to read that particular email and only the part of it that contains the attachment information containing filenames. If you are worried about an app that has permission to read your emails, please note that AttachSave does not have any outbound net permissions, so even though it has access to your entire email, there is nothing it can do with it.
Since the Lite version does not have permission to read your email, it will instead try to guess a filename for you based entirely on what kind of data it was given (usually just a generic description like “audio”, or “video”. For example, let us say you have “my_homemade_song.mpeg” as an attachment. AttachSave Lite will know that it was handed a bunch of 1’s and 0’s and told that it was an MPEG audio file. Since MPEG audio files can have a half of a dozen different kinds of extensions, Lite will guess that the attachment should be named “attachment-1.mp3”. If you then tried to open this file, it will try to play it as an MPEG audio file and will most likely work just fine.
The name of the file has nothing to do with what is inside your file. You can try to open files up with any software, really. Extensions are just a traditional way for a computer system to guess at what is inside and start the correct program for you to read the file. Renaming files with different extensions tricks the computer into opening different programs to read your file. If you renamed it “somefile.zip” and tried to open it, a ZIP program would launch and try to read it as a .zip file. Similar to renaming it with .jpg, it will try to open it as a picture.
If Lite fails to figure out the attachment extension, it will name it “attachment-1.bin”. If you leave it with that extension and try to open it, nothing will be able to read it (since .bin isn’t anything, really). *.bin is old shorthand for “I don’t know what’s inside so I’ll just call it “.bin” … which is short for binary.
The long and the short of it is that Lite will need you to put in the correct attachment name in order for the phone to open the correct app to read your attachment. If you get tired of doing this manually, I would highly recommend upgrading to the full AttachSave version and letting the computer do the work for you. =)
Why does the attachment size reported by Gmail change after I save the file?
The attachment size reported by Gmail changes to a different value when you save to the SD card.
This is normal behavior and will change regardless of whether or not you use AttachSave, just not right away like when you use AttachSave.
Let me work with an example jpeg. I have a jpeg on my laptop that is 102K in size. If I attach that jpeg to an email, the email encodes it into the email as text which will always result in a larger apparent file size for jpeg files. Gmail will report my example jpeg as 138.9K. Once you save it to the SD card, it will be decoded and saved in it’s original size of 102K. What you are witnessing with AttachSave is the email getting refreshed with the decoded file size. Gmail will also display this smaller number even if you do not use AttachSave, but you first have to “refresh the SD card” and then re-open the email before it will do so. Many File Browser programs can refresh the SD card for you or you can remove/reinsert the card to do the same thing. Once you refresh it and open back up that email, Gmail will show you the smaller size. AttachSave refreshes the SD card after every file is saved so that all programs on the phone can update themselves (Gmail included). I needed to perform a system-wide SD card refresh so that any type of saved file will show up correctly in their respective programs without my having to know exactly what programs are being used: mp3s will show up in the music program, videos and pictures in the Gallery and so on. Gmail only can save pictures, so to save time, it just forces the Gallery to update and doesn’t bother telling anyone else (including itself).
For a more in depth look into email attachments and how and why their sizes change, please review the following sites:
- Email Attachment Size Explained, by Terry’s Computer Tips
- Base64 (or MIME encoding) is the modern form of UUEncoding, but the result is the same, a larger encoded jpeg file appended to the email text.
Why does an image attachment size get smaller using the Gmail app with “Preview & AttachSave” vs. “Download”?
Gmail treats image attachments differently from every other kind of attachment. Besides being the only native file type allowed to be saved to your phone’s SD card, it behaves differently using Preview vs. Download. By using Preview, Gmail only downloads a “phone sized” thumbnail of the image rather than the whole thing. While is is much faster and not very problematic for Gmail or picture viewing, it is very problematic for AttachSave. If you Preview an image attachment and then use AttachSave to save that image on your SD card, it will be storing the scaled down version of the image, not the actual image attachment in your email. AttachSave does not have the authority to reach into Google servers and pull down the image stored there, so it must rely on what the Gmail app gives it.
While you would think Gmail’s Download button would be a good option so that you can save the entire image attachment without reducing it’s resolution, that option has it’s own problems. The Gmail app doesn’t use your email attachment name (I find it quite amusing that AttachSave can, but Gmail’s own app does not). For example, an image attachment named “mypic.jpg” will be renamed instead to “downloadfile-#.jpeg”. Not only that, but it will be forcibly saved to “/sdcard/download/”. Once the file is downloaded, it then launches the viewer on that filename and this is what you see on the screen. AttachSave, as of version 1.9, will be able to intercept this viewing of the file so that you can give it a new name and a new location on your SD card. AttachSave will then move your file and rename it to what you chose. The screens will look the same, but the difference will be that the default filename will never be read from the email and will always only be guessed by both Lite and Full versions. Unfortunately, there is no way to figure out what email it came from and therefore no way to figure out the original filename. I am researching a way to overcome this limitation, but until I find a better way, this is as close as I can come to a solution.
My epub eBook file will not work with Gmail’s Preview or even after using AttachSave to download it to the SD card.
Gmail does not seem to download the entire epub file when Preview is used. AttachSave can only save the bytes it’s given from Gmail and, for some reason, Gmail isn’t downloading the entire file. This results in your eBook reader ignoring the damaged/shrunken file. After a bunch of research, I do have a recommended procedure for getting that epub file to your phone with Gmail and using the FBReader free eBook reader.
- Download an app to your phone that lets you work with Zip files. Something like my Blackmoon File Browser or AndExplorer.
- Put your epub file into a Zip file (if it isn’t already in one) and email that Zip file to your phone.
- Use Gmail’s Preview button and AttachSave to download the Zip file to /sdcard/Books so that FBReader can find it.
- (Optional) If you are asked to pick an app to view the file after downloading, just click the Back key to avoid opening up the Zip file. If you are automatically presented with an app to unzip the file, again, just Back out of it and do not unzip the file. I mark this step as optional because you do not need to unzip the file as FBReader will be able to use it as is. If you wish to unzip it anyway, feel free to do so.
- Open FBReader and the downloaded book will appear in your Library.
Since FBReader is able to read epub files while inside a Zip file, emailing the Zip file will both prevent Gmail from shrinking the file and will also allow FBReader to read the book without any further action needed.
Why do I get “cannot fetch attachment” when … ?
Any error message AttachSave generates will show up with AttachSave shown somewhere in the message (usually in the title of the pop-up window). This particular message you are seeing is from the Gmail app and has nothing to do with AttachSave. AttachSave allows you to take fetched Gmail attachments and save them onto your SD card, but Gmail must first fetch them to a hidden area on your phone. AttachSave will let you save any fetched file. AttachSave never claimed to download anything as it cannot read your email nor connect to any email servers. I purposely designed AttachSave to behave this way for security reasons — who would trust a non-open source 3rd party app with direct access to your email and with internet access? Too many would suspect it of being Spyware or worse yet, a Trojan of some kind.
A common “problem” is that Gmail is starting to go to great lengths at trying to not download attachments to your phone. Probably in the name of “conserving cellphone bandwidth”. Many times, this error message is produced by Gmail when you try to fetch a file that is “too large”. The Gmail app will not fetch large files to the phone even if you can download them to your computer just fine. What size is “too large”? I haven’t found the exact limit and it is different for every phone type and may even depend on the number of installed apps. In my experience, though, anything larger than 2 megabytes exhibit problems. When Gmail feels the file is too large to fetch, you will get the “cannot fetch attachment” error. If you feel this is not the case with your issue, you will need to get in touch with Gmail support and ask them why you cannot fetch it.
If you suspect the file may be too large, I would suggest compressing it first. Please be aware that Google opens up at least Zip files and scans their contents, so that may not be guaranteed to work around the issue. Password protect the Zip file and that way it cannot be opened up by a machine and scanned.
Why does it only save some of the attachment, but not all of it?
Since AttachSave cannot reach into Google’s email servers and download anything itself, it relies on Gmail to fetch the attachment into it’s hidden cache first. Gmail is subject to the phone carrier wishes. That is one of the pitfalls of being pre-installed on your phone, either the phone carrier likes your app or it gets replaced with something more friendly to their business. There are several restrictions on the Gmail app put in place for business reasons and some for technical reasons. As Android phones get more powerful and the newer phones get the latest Android release, the Gmail app gets more restrictive as well. Music files attached to emails are detected and if Previewed, Gmail will only download a snippet of the music and not the whole thing. This is a Gmail limitation and nothing AttachSave alone will overcome. Complaining to your carrier will likely result is nothing as they don’t want you to be emailing music around and would much rather you purchase a download to your phone by some other means. Music is just one example, there are others and the Gmail app gets more and more sophisticated at detecting popular file types and treating each one slightly different in how you Preview them from the Gmail app. Large files in particular are a favorite subject to try and avoid downloading since massive downloads tie up a lot of carrier bandwidth.
Is there anything to be done about it? I don’t know, but I am researching possibilities and seeing what can be done about the situation.
Why does the full version act like Lite when working with Gmail 2.3.5+?
As of Gmail version 2.3.5, Google decided that 3rd party developers such as myself cannot ever get the right to read your email. Only built-in apps can have that right. By removing that right, AttachSave Full can no longer read your email to determine the attachment filename. There is no fix and no workaround until Google decides to change the Gmail app. You can read more about the changes made over at Google’s Support Forum and at this industry related blog.