Hunter wrote:
I am writing a script that needs to send some emails.  And I've used
smtplib in the past and it is pretty easy.  But I thought, gee it
would be easier if I could just call it as a function, passing the
from, to, subject, and message text.  So I wrote it up as a function
and it sort of works, but I get a weird error.  When it runs it
inserts a "\t" tab character before each item during the send portion
(which I can see when I turn on debug).  The end result is that I
don't get any body or subject in my emails.  It works fine when I copy
the inside of the function and run it directly.  It isn't a
dealbreaker, I can certainly just call it direct, but from a learning
Python perspective I'm wondering if anyone knows what exactly is
happening.    I'm more interested in the why this is happening than a
solution (though that would be great too).  Oh and if you could
explain it to me, with no CS background, that would be even better.

I am working on Windows Vista with Python 2.5.2 (activestate).

Thanks --Joshua

Snip of script (more or less a copy/paste from effbot):
fromaddress = '[EMAIL PROTECTED]'
tolist = ['[EMAIL PROTECTED]','[EMAIL PROTECTED]']
msgsubj = "Hello!"
messagebody = "This message was sent with Python's smtplib."


def send_mail(fromaddress,tolist,msgsubj,messagebody):
        import smtplib
        SERVER = "mymailserver.mydomain.com"
        message = """\
        From: %s
        To: %s
        Subject: %s
        %s
        """ % (fromaddress, ", ".join(tolist),msgsubj, messagebody)
  ^^^^^
The tabs are exactly here.

best is to use the mail package to generate mime compliant
emails and use simple templates - which could in the
easiest form just module level constants like:

stdform="""
Hello %(greeting)s,

this automated email is about %(subject)s ... """

and so on and then you use it with

stdform % dict(greeting='Mr Ed',subject='writing emails')

...

HTH
Tino

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to