need guidance on sending emails with attachment with python.

Richard Charts richard.charts at gmail.com
Mon Dec 11 13:50:38 EST 2006


krishnakant Mane wrote:
> 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.
> >
> >
> >

You will need some working email account.
It could be a server on your local machine or it could be a gmail
account.
If you don't have an email account that you want to send from, then you
will have to either obtain one or create your own server.




More information about the Python-list mailing list