473,395 Members | 1,701 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,395 software developers and data experts.

sending emails to a list of recipients

Kun
i have the following code:

----------------------------------
import smtplib

from email.MIMEText import MIMEText
fp = open('confirmation.txt', 'rb')
msg = MIMEText(fp.read())

From = 'x***@xxxx.xxxx.edu'

msg['Subject'] = 'Purchase Confirmation'
msg ['From'] = From
msg['To'] = emails

s = smtplib.SMTP('xxxx.xxx.xxx.edu')
s.login('xxxxx','xxxx')
s.sendmail(msg['From'], msg['To'], msg.as_string())
s.close()
----------------------------------

it works if msg['To'] = 'e****@email.com'

however, i'm trying to attach a list of emails named 'emails' to msg['To']

emails is in the following format: ['n***@gmail.com', 'n***@gmail.com',
'x**@xxx.xxxx.edu']
anyone have an idea how i can modify this script to work with sending a
list? note this is a snippet of a larger code, 'emails' is as a string
defined earlier.
Mar 25 '06 #1
5 23733
Kun
Kun wrote:
i have the following code:

----------------------------------
import smtplib

from email.MIMEText import MIMEText
fp = open('confirmation.txt', 'rb')
msg = MIMEText(fp.read())

From = 'x***@xxxx.xxxx.edu'

msg['Subject'] = 'Purchase Confirmation'
msg ['From'] = From
msg['To'] = emails

s = smtplib.SMTP('xxxx.xxx.xxx.edu')
s.login('xxxxx','xxxx')
s.sendmail(msg['From'], msg['To'], msg.as_string())
s.close()
----------------------------------

it works if msg['To'] = 'e****@email.com'

however, i'm trying to attach a list of emails named 'emails' to msg['To']

emails is in the following format: ['n***@gmail.com', 'n***@gmail.com',
'x**@xxx.xxxx.edu']
anyone have an idea how i can modify this script to work with sending a
list? note this is a snippet of a larger code, 'emails' is as a string
defined earlier.


this is my error msg of leaving the code in its current state... (brave
yourself)

Traceback (most recent call last):
File "/Tutorial/IMAP/scannermailer.py", line 41, in -toplevel-
s.sendmail(msg['From'], msg['To'], msg.as_string())
File
"/Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/email/Message.py",
line 129, in as_string
g.flatten(self, unixfrom=unixfrom)
File
"/Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/email/Generator.py",
line 82, in flatten
self._write(msg)
File
"/Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/email/Generator.py",
line 120, in _write
self._write_headers(msg)
File
"/Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/email/Generator.py",
line 166, in _write_headers
header_name=h, continuation_ws='\t').encode()
File
"/Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/email/Header.py",
line 395, in encode
return self._encode_chunks(newchunks, maxlinelen)
File
"/Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/email/Header.py",
line 355, in _encode_chunks
_max_append(chunks, s, maxlinelen, extra)
File
"/Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/email/quopriMIME.py",
line 79, in _max_append
L.append(s.lstrip())
AttributeError: 'list' object has no attribute 'lstrip'
Mar 25 '06 #2
Kun wrote:
i have the following code:

----------------------------------
import smtplib

from email.MIMEText import MIMEText
fp = open('confirmation.txt', 'rb')
msg = MIMEText(fp.read())

From = 'x***@xxxx.xxxx.edu'

msg['Subject'] = 'Purchase Confirmation'
msg ['From'] = From
msg['To'] = emails

s = smtplib.SMTP('xxxx.xxx.xxx.edu')
s.login('xxxxx','xxxx')
s.sendmail(msg['From'], msg['To'], msg.as_string())
s.close()
----------------------------------

it works if msg['To'] = 'e****@email.com'

however, i'm trying to attach a list of emails named 'emails' to msg['To']

emails is in the following format: ['n***@gmail.com', 'n***@gmail.com',
'x**@xxx.xxxx.edu']
anyone have an idea how i can modify this script to work with sending a
list? note this is a snippet of a larger code, 'emails' is as a string
defined earlier.

maybe try : msg['To'] = ', '.join( emails )

taken from:

http://docs.python.org/lib/node597.html

Gerard

Mar 26 '06 #3
smtplib docs http://python.active-venture.com/lib/SMTP-example.html
say that the to should be a list of addresses (your emails);

s.sendmail(msg['From'], emails, msg.as_string())

-Larry Bates
Kun wrote:
Kun wrote:
i have the following code:

----------------------------------
import smtplib

from email.MIMEText import MIMEText
fp = open('confirmation.txt', 'rb')
msg = MIMEText(fp.read())

From = 'x***@xxxx.xxxx.edu'

msg['Subject'] = 'Purchase Confirmation'
msg ['From'] = From
msg['To'] = emails

s = smtplib.SMTP('xxxx.xxx.xxx.edu')
s.login('xxxxx','xxxx')
s.sendmail(msg['From'], msg['To'], msg.as_string())
s.close()
----------------------------------

it works if msg['To'] = 'e****@email.com'

however, i'm trying to attach a list of emails named 'emails' to
msg['To']

emails is in the following format: ['n***@gmail.com',
'n***@gmail.com', 'x**@xxx.xxxx.edu']
anyone have an idea how i can modify this script to work with sending
a list? note this is a snippet of a larger code, 'emails' is as a
string defined earlier.


this is my error msg of leaving the code in its current state... (brave
yourself)

Traceback (most recent call last):
File "/Tutorial/IMAP/scannermailer.py", line 41, in -toplevel-
s.sendmail(msg['From'], msg['To'], msg.as_string())
File
"/Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/email/Message.py",
line 129, in as_string
g.flatten(self, unixfrom=unixfrom)
File
"/Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/email/Generator.py",
line 82, in flatten
self._write(msg)
File
"/Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/email/Generator.py",
line 120, in _write
self._write_headers(msg)
File
"/Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/email/Generator.py",
line 166, in _write_headers
header_name=h, continuation_ws='\t').encode()
File
"/Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/email/Header.py",
line 395, in encode
return self._encode_chunks(newchunks, maxlinelen)
File
"/Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/email/Header.py",
line 355, in _encode_chunks
_max_append(chunks, s, maxlinelen, extra)
File
"/Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/email/quopriMIME.py",
line 79, in _max_append
L.append(s.lstrip())
AttributeError: 'list' object has no attribute 'lstrip'

Mar 26 '06 #4
"Gerard Flanagan" <gr********@yahoo.co.uk> wrote:
Kun wrote:
i have the following code:

----------------------------------
import smtplib
...
msg['Subject'] = 'Purchase Confirmation'
msg ['From'] = From
msg['To'] = emails

s = smtplib.SMTP('xxxx.xxx.xxx.edu')
s.login('xxxxx','xxxx')
s.sendmail(msg['From'], msg['To'], msg.as_string())
s.close()
----------------------------------

it works if msg['To'] = 'e****@email.com'

however, i'm trying to attach a list of emails named 'emails' to msg['To']

emails is in the following format: ['n***@gmail.com', 'n***@gmail.com',
'x**@xxx.xxxx.edu']

anyone have an idea how i can modify this script to work with sending a
list? note this is a snippet of a larger code, 'emails' is as a string
defined earlier.

What did you try? You should just be able to pass the list:

s.sendmail( msg['From'], emails, msg.as_string() )
Or, if you must,
msg['To'] = emails
s.sendmail( msg['From'], msg['To'], msg.as_string() )

It needs to be a list or tuple of individual addresses, e-mail only, with
no "nicknames". If you tried that, what did you see?
maybe try : msg['To'] = ', '.join( emails )

taken from:

http://docs.python.org/lib/node597.html


No, you misread the example. It uses that in the headers of the message.
That won't work for the second parameter of SMTP.sendmail.
--
- Tim Roberts, ti**@probo.com
Providenza & Boekelheide, Inc.
Mar 27 '06 #5
Kun <ne*******@gmail.com> wrote:

Kun wrote:
i have the following code:

----------------------------------
import smtplib

from email.MIMEText import MIMEText
fp = open('confirmation.txt', 'rb')
msg = MIMEText(fp.read())

From = 'x***@xxxx.xxxx.edu'

msg['Subject'] = 'Purchase Confirmation'
msg ['From'] = From
msg['To'] = emails

s = smtplib.SMTP('xxxx.xxx.xxx.edu')
s.login('xxxxx','xxxx')
s.sendmail(msg['From'], msg['To'], msg.as_string())
s.close()
----------------------------------


this is my error msg of leaving the code in its current state... (brave
yourself)

Traceback (most recent call last):
File "/Tutorial/IMAP/scannermailer.py", line 41, in -toplevel-
s.sendmail(msg['From'], msg['To'], msg.as_string())
File
"/Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/email/Message.py",
line 129, in as_string
g.flatten(self, unixfrom=unixfrom)
...
File
"/Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/email/quopriMIME.py",
line 79, in _max_append
L.append(s.lstrip())
AttributeError: 'list' object has no attribute 'lstrip'


OK, I see what's going on now. The problem is that SMTP.sendmail and
email.MIMEText need two different things.

email.MIMEText sets up the "To:" header for the body of the e-mail. It is
ONLY used for displaying a result to the human being at the other end, and
like all e-mail headers, must be a single string. (Note that it does not
actually have to have anything to do with the people who actually receive
the message.)

SMTP.sendmail, on the other hand, sets up the "envelope" of the message for
the SMTP protocol. It needs a Python list of strings, each of which has a
single address.

So, what you need to do is COMBINE the two replies you received. Set
msg['To'] to a single string, but pass the raw list to sendmail:

msg['To'] = ', '.join( emails )
....
s.sendmail( msg['From'], emails, msg.as_string() )
--
- Tim Roberts, ti**@probo.com
Providenza & Boekelheide, Inc.
Mar 27 '06 #6

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

2
by: jason | last post by:
Database: Access 2000 Host: Maximum ASP I am trying to work out the best way to send bulk email below the 1000 mark (about 800). I understand that I could either use ASPEmail or CDO although...
2
by: Joe | last post by:
Hi, I am sending an email from an asp page. Besides sending an email to sender, I am sending myself a BCC also. Out of 100 emails sent, about 5 recipients received a blank email (no text in...
1
by: Devonish | last post by:
I am composing an email with Access VB and then sending it from within Access. Everything works correctly (the email actually goes!) but Outlook ask some irritating questions that the user is...
4
by: splicemix | last post by:
Hi all, I have recently set up a Drupal website. I am a beginner. My shared host server does not allow nobody@localhost to send emails, and prevents access to php.ini, so I spent some time...
5
by: horsetransport | last post by:
Hello, Below is what I "Know how to do" but it doesn't accomplish what I want I have table called sndmail fields that matter useremail and mailsent
0
by: Jim Devenish | last post by:
I wish to send a copy of an email to a selected number of recipients. I can do this when the email contains only text but have a problem when the email contains a picture. I create a new email...
4
by: Michelle | last post by:
Hi Is it possible/anyone know how to send a document (.pdf) to multiple recipients using POP where the email is not just a matter of throwing 1000 email addresses in the BCC list, but each email...
7
by: 3KWA | last post by:
Hi all, I tried to send a small mailing list using python today (2036 emails). For that purpose I looked in the doc for some code examples (I had never done it before). And I ended up writing...
0
by: damimkader | last post by:
Hi, I'm trying to send emails using a Macro based on an Excel Sheet and the Email Client I'm using is Lotus Notes. OS used - Windows Xp. Language - VB Below is the Code I'm using for doing...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: ryjfgjl | last post by:
If we have dozens or hundreds of excel to import into the database, if we use the excel import function provided by database editors such as navicat, it will be extremely tedious and time-consuming...
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
0
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.