need guidance on sending emails with attachment with python.

Bernard bernard.chhun at gmail.com
Mon Dec 11 07:54:04 EST 2006


here's the function I've been using for while :P

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