[Tutor] smptlib question
Albert-jan Roskam
fomcl at yahoo.com
Tue Jun 9 09:20:25 CEST 2009
Hi David and Tino,
Thanks! I will try this tonight when I'm back home from the office. It's interesting to see how you split up the code into several little functions. Maybe it's typical for a newbie (like myself) to have the tendency to put everything into one function, instead of letting each function have its own purpose.
Cheers!!
Albert-Jan
--- On Tue, 6/9/09, David <david at abbottdavid.com> wrote:
> From: David <david at abbottdavid.com>
> Subject: Re: [Tutor] smptlib question
> To: "Albert-jan Roskam" <fomcl at yahoo.com>
> Cc: "*tutor python" <tutor at python.org>
> Date: Tuesday, June 9, 2009, 2:13 AM
> 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 = 'ren at stimpy.com'
> > recipients = ['happyhappy at joy.com',
> 'you at 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 at 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 = ['happyhappy at joy.com',
> 'you at 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 = "ren at 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
>
More information about the Tutor
mailing list