need guidance on sending emails with attachment with python.

krishnakant Mane researchbase at gmail.com
Mon Dec 11 12:45:07 EST 2006


On 11 Dec 2006 04:54:04 -0800, Bernard <bernard.chhun at gmail.com> wrote:
> here's the function I've been using for while :P
>
thanks indeed for the function Bernard.
I will have a windows machine up tomorrow.  but do I need to install
any thing over and above the python libraries needed?
is it necessary that I install outlook or do I need to install any
server/ client on the machine where your function is to be used?
> import smtplib
> from email.MIMEMultipart import MIMEMultipart
> from email.MIMEBase import MIMEBase
> from email.MIMEText import MIMEText
> from email.Utils import COMMASPACE, formatdate
> from email import Encoders
>
> def sendMail(arrRecipients, sender, subject, message, files=[]):
>     """ Sends email with attachements """
>     # SMTP address
>     smtpserver = '' # provide a smtp here in string format
>     # authentification section
>     AUTHREQUIRED = 0 # if you need to use SMTP AUTH set to 1
>     smtpuser = ''  # for SMTP AUTH, set SMTP username here
>     smtppass = ''  # for SMTP AUTH, set SMTP password here
>
>     # Building the body of the email
>     mssg = MIMEMultipart()
>     mssg['From'] = sender
>     mssg['To'] = COMMASPACE.join(arrRecipients)
>     mssg['Date'] = formatdate(localtime=True)
>     mssg['Subject'] = subject
>     mssg.attach( MIMEText(message) )
>
>     # attachments
>     for file in files:
>         part = MIMEBase('application', "octet-stream")
>         part.set_payload( open(file,"rb").read() )
>         Encoders.encode_base64(part)
>         part.add_header('Content-Disposition', 'attachment;
> filename="%s"' % os.path.basename(file))
>         mssg.attach(part)
>
>     session = smtplib.SMTP(smtpserver)
>     if AUTHREQUIRED:
>         session.login(smtpuser, smtppass)
>     smtpresult = session.sendmail(sender, arrRecipients,
> mssg.as_string())
>
>     if smtpresult:
>         errstr = ""
>         for recip in smtpresult.keys():
>             errstr = """Could not delivery mail to: %s
>
>     Server said: %s
>     %s
>
>     %s""" % (recip, smtpresult[recip][0], smtpresult[recip][1], errstr)
>         raise smtplib.SMTPException, errstr
>
> krishnakant Mane a écrit :
>
> > hello,
> > I am a bit confused.
> > I want to make a program that will take some data from a database and
> > make a string of text.  and send it to the respective email id of a
> > person.
> > next I also want to send an attachment of a photo along with the email.
> > I will be required to make this program run on windows xp.
> > can some one guide me as to how I can achieve this?
> > what I will need on windows to send emails?
> > I believe yahoo, gmail, rediff and msn supports pop3 and smtp?
> > correct me if I am wrong on this.
> > secondly what library is used on windows to do this?
> > I know there must be python libraries to do this,
> > but apart from that I don't know what all I will need on my windows
> > machine to send emails to mostly yahoo, gmail and msn.
> > Please give me some idea about it.
> > Krishnakant.
>
>
>



More information about the Python-list mailing list