Albert-jan Roskam wrote:
(sorry for posting this again, but something might have gone wrong)

Hi,

I made a very simple program to send everybody I know a change of address I am 
parsing the .msg files with another function, which returns a set called 
'recipients'.

The code below works, but it displays all recipients in the 'to' field. That 
is, in the Nth iteration, N recipients are shown. So the first mail has one 
recipient in the 'to' field, the second mail has the first and the second 
recipient, and so forth. I only want one recipient to be shown in the 'to' 
field. It's ugly and since I have a lot of email addresses to parse (4 years 
worth of emails!), it would become a very long list.

Pointers, anyone?

Thanks!
Albert-Jan
Python 2.5, Windows XP

import smtplib, email.utils
from email.mime.text import MIMEText

msg = MIMEText("""Dear reader:\n\nblaaaaah blaah blaah.\nSincerely,\nThe 
dude""")

sender = 'r...@stimpy.com'
recipients = ['happyha...@joy.com', 'y...@eediot.com]
for no, recipient in enumerate(recipients):
    print "--> Sending message to: %s (%s of %s)" % (recipient, no+1, 
len(recipients))
    msg['To'] = email.utils.formataddr((recipient, recipient))
    print msg['To']
    msg['From'] = email.utils.formataddr(('Cool dude', sender))
    msg['Subject'] = 'Change of email address'

    server = smtplib.SMTP("mysmtpserver.isp.com")
    server.set_debuglevel(True)
    try:
        server.sendmail(sender, [recipient], msg.as_string())
    finally:
        server.quit()


_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor



Hi Albert,
I got this to work;

#!/usr/bin/python

import smtplib, email.utils
from email.mime.text import MIMEText
from email.MIMEMultipart import MIMEMultipart
from email.Utils import COMMASPACE, formatdate

def recipients():
    recipients = ['happyha...@joy.com', 'y...@eediot.com]
    for no, recipient in enumerate(recipients):
print "--> Sending message to: %s (%s of %s)" % (recipient, no+1, len(recipients))
        message(recipient)

def message(recipient):
    body = "Dear reader:\n\nblaaaaah blaah blaah.\nSincerely,\nThe dude"
    send_mail([recipient], 'Change of email address', body)


def send_mail(send_to, subject, text, server="mail.stimpy.com"):
    send_from = "r...@stimpy.com"
    msg = MIMEMultipart()
    msg['To'] = COMMASPACE.join(send_to)
    msg['Date'] = formatdate(localtime=True)
    msg['From'] = send_from
    msg['Subject'] = subject
    msg.attach( MIMEText(text) )
    smtp = smtplib.SMTP(server)
    smtp.sendmail(send_from, send_to, msg.as_string())
    smtp.close()

recipients()

--
Powered by Gentoo GNU/Linux
http://linuxcrazy.com
_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor

Reply via email to