Connecting Tech Pros Worldwide Forums | Help | Site Map

need guidance on sending emails with attachment with python.

krishnakant Mane
Guest
 
Posts: n/a
#1: Dec 10 '06
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.

Bernard
Guest
 
Posts: n/a
#2: Dec 11 '06

re: need guidance on sending emails with attachment with python.


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 :
Quote:
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.
krishnakant Mane
Guest
 
Posts: n/a
#3: Dec 11 '06

re: need guidance on sending emails with attachment with python.


On 11 Dec 2006 04:54:04 -0800, Bernard <bernard.chhun@gmail.comwrote:
Quote:
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?
Quote:
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 :
>
Quote:
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.
>
>
>
Richard Charts
Guest
 
Posts: n/a
#4: Dec 11 '06

re: need guidance on sending emails with attachment with python.


krishnakant Mane wrote:
Quote:
On 11 Dec 2006 04:54:04 -0800, Bernard <bernard.chhun@gmail.comwrote:
Quote:
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?
Quote:
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 :
Quote:
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.

ina
Guest
 
Posts: n/a
#5: Dec 12 '06

re: need guidance on sending emails with attachment with python.


I put to gether a class to deal with this along time ago it might be of
help to you.
You can find it at
http://phlik.ishpeck.net/index.php?P=b1114201575phlik.

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