472,805 Members | 826 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 472,805 software developers and data experts.

Email attachments

Is there a way I can put a message together without having to download any
attachments there may be at the same time. I'm not having any problems dealing
with attachments, but the way I'm doing things makes me download the complete
message first, attachements and all:
mail = []
for j in M.retr(i)[1]:
mail.append(j.rstrip())
inMail = email.message_from_string('\r\n'.join(mail))

I don't have a real problem per se with this, it's just that I would just as
soon not download the attachments as well at first. Also I'm wondering, are my
attachments potentially dangerous at the state when I first get them as part of
the email, or are they not potentially dangerous until I binary write that part
of the message into a file(that's how I'm dealing with attachments, if I want
to keep an attachment in the already downloaded complete email, I just write it
to a file.
Jul 18 '05 #1
3 3058

lu*************@aol.com (LutherRevisited) wrote:

Is there a way I can put a message together without having to download any
attachments there may be at the same time. I'm not having any problems dealing
with attachments, but the way I'm doing things makes me download the complete
message first, attachements and all:
mail = []
for j in M.retr(i)[1]:
mail.append(j.rstrip())
inMail = email.message_from_string('\r\n'.join(mail))

I don't have a real problem per se with this, it's just that I would just as
soon not download the attachments as well at first. Also I'm wondering, are my
attachments potentially dangerous at the state when I first get them as part of
the email, or are they not potentially dangerous until I binary write that part
of the message into a file(that's how I'm dealing with attachments, if I want
to keep an attachment in the already downloaded complete email, I just write it
to a file.

On POP3 mail servers, there are but two parts of the message; the header
and body. Some servers support the TOP command, which is used like so:
TOP <message> <bodylines>

With that command, you can get the headers and <bodylines> number of
lines from the body of the email message, on servers that support it.
Now, understand that in the case of POP3, the server does not understand
what you think of as an attachment. It is all just the body of the
email (likely encoded with base64), separated with section delimiters.

Also understand that the ordering of these "attachments" can be
arbitrary (include the binary attachment, then the plain text email,
then the html email), so you may need to download the entire email to
get the plain text message body.

- Josiah

Jul 18 '05 #2
Thanks, I looked into TOP and it looks like I'll be able to handle that issue
satisfactorily with at least one, maybe many, but not all servers. POP3 is not
looking good to me now, but with Yahoo what can you do....
Jul 18 '05 #3

lu*************@aol.com (LutherRevisited) wrote:
Thanks, I looked into TOP and it looks like I'll be able to handle that issue
satisfactorily with at least one, maybe many, but not all servers.
Perhaps you missed the later part of my post when I explained that the
location of attachments can be arbitrary. That is, attached files can
come before what most people consider to be the body of the email (text
like what you are reading now). At best, using TOP is a 95% solution.
The 100% solution is to just download the email and call it good.

If you merely care whether there is an attachment or not, deciding based
on the size of an email (the sizes returned by LIST) can be reasonable.

POP3 is not looking good to me now, but with Yahoo what can you do....


Well, with Yahoo, you can only access them via POP3 if you have paid for
their services.

Really, mail access comes down to the simple maildrop approach that is
all client-side (POP3), or the complicated server handles everything
approach (IMAP4).

With a simple approach comes a simple protocol. POP3 servers and
clients can be implemented in an afternoon, and I have done so a few
times (it is what I get paid to do).

The IMAP4 spec is huge, and allows asynchronous command processing (the
server can reply to command B before command A when command A was given
first), which complicates matters. Having written partial IMAP4 servers
and clients, I will tell you that it is not really approachable in
anything less than a weekend.

I believe that the reason why very few large webmail providers offer
IMAP4 access is due to the protocol being very difficult to get right,
and because POP3 does most of what is necessary.
In my opinion, what is really needed is a protocol that sits between
POP3 and IMAP4. POP3 with folder support and a few other little pieces
would be sufficient to implement all the protocol necessary for a
full-on webmail service with the features of both Gmail and Yahoo Mail.
Unfortunately, the liklihood of this happening and becoming widespread
is very low; both the POP3 and IMAP4 RFCs have been around for quite a
while, and many among the email community believe that they are
sufficient.

Ah well...
- Josiah

Jul 18 '05 #4

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

4
by: Paul Schmidt | last post by:
Dear list: I am new to python, and I am trying to figure out the short answer on something. I want to open a POP3 mailbox, read the enclosed mail using the POP3 module, , and then process it...
5
by: morphex | last post by:
Hi, I have an email that's in the utf-8 encoding, and I'm getting this error message when I try to send it using smtplib: * Module smtplib, line 688, in sendmail * Module smtplib, line 485,...
5
by: paii, Ron | last post by:
How do I setup a email with attachment for preview but require the user to push the SEND button in Outlook. I have the following function but it sends the email without the sender ever seeing it. ...
4
by: Russell Bungay | last post by:
Hello all, I have written a short function, based on a recipe in the Python Cookbook, that sends an e-mail. The function takes arguments that define who the e-mail is to, from, the subject, the...
1
by: mike11d11 | last post by:
If someone could help me, I need to be able to send attachments from my access database that I have created. This database runs queries then generates a report off the queries from underlying...
10
by: OdAwG | last post by:
Hello All, Is it possible to send an email from Access? I found a Microsoft article on how to do this but I keep getting an error "RUNTIME ERROR 438" -- Object doesn't support this property or...
2
by: oyster | last post by:
I find that the existing email moudle is some hard for me to understand, especially the part of how to set the CC, BCC and attach the files. Is there any more easy one like this p-code? import...
1
by: Steve Holden | last post by:
I'm having some trouble getting attachments right for all recipients, and it seems like Apple's mail.app is the pickiest client at the moment. It doesn't handle attachments that both Thunderbird...
1
by: budyerr | last post by:
All, I am trying to build a email submission form using asp.net. I currently have a web form page that will upload to my webhosting server, attach to email then delete the file after sending. ...
2
isladogs
by: isladogs | last post by:
The next Access Europe meeting will be on Wednesday 2 August 2023 starting at 18:00 UK time (6PM UTC+1) and finishing at about 19:15 (7.15PM) The start time is equivalent to 19:00 (7PM) in Central...
0
by: erikbower65 | last post by:
Using CodiumAI's pr-agent is simple and powerful. Follow these steps: 1. Install CodiumAI CLI: Ensure Node.js is installed, then run 'npm install -g codiumai' in the terminal. 2. Connect to...
0
linyimin
by: linyimin | last post by:
Spring Startup Analyzer generates an interactive Spring application startup report that lets you understand what contributes to the application startup time and helps to optimize it. Support for...
0
by: erikbower65 | last post by:
Here's a concise step-by-step guide for manually installing IntelliJ IDEA: 1. Download: Visit the official JetBrains website and download the IntelliJ IDEA Community or Ultimate edition based on...
0
by: kcodez | last post by:
As a H5 game development enthusiast, I recently wrote a very interesting little game - Toy Claw ((http://claw.kjeek.com/))。Here I will summarize and share the development experience here, and hope it...
0
by: Taofi | last post by:
I try to insert a new record but the error message says the number of query names and destination fields are not the same This are my field names ID, Budgeted, Actual, Status and Differences ...
0
by: Rina0 | last post by:
I am looking for a Python code to find the longest common subsequence of two strings. I found this blog post that describes the length of longest common subsequence problem and provides a solution in...
0
by: lllomh | last post by:
How does React native implement an English player?
0
by: Mushico | last post by:
How to calculate date of retirement from date of birth

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.