How do I add a Sender name to the emails sent by the following script:

def createhtmlmail (html, text, subject):
        """Create a mime-message that will render HTML in popular
           MUAs, text in better ones"""
        import MimeWriter
        import mimetools
        import cStringIO

        out = cStringIO.StringIO() # output buffer for our message
        htmlin = cStringIO.StringIO(html)
        txtin = cStringIO.StringIO(text)

        writer = MimeWriter.MimeWriter(out)
        # set up some basic headers... we put subject here
        # because smtplib.sendmail expects it to be in the
        # message body
        #
        writer.addheader("Subject", subject)
        writer.addheader("MIME-Version", "1.0")
        #
        # start the multipart section of the message
        # multipart/alternative seems to work better
        # on some MUAs than multipart/mixed
        #
        writer.startmultipartbody("alternative")
        writer.flushheaders()
        #
        # the plain text section
        #
        subpart = writer.nextpart()
        subpart.addheader("Content-Transfer-Encoding", "quoted-printable")
        pout = subpart.startbody("text/plain", [("charset", 'us-ascii')])
        mimetools.encode(txtin, pout, 'quoted-printable')
        txtin.close()
        #
        # start the html subpart of the message
        #
        subpart = writer.nextpart()
        subpart.addheader("Content-Transfer-Encoding", "quoted-printable")
        #
        # returns us a file-ish object we can write to
        #
        pout = subpart.startbody("text/html", [("charset", 'us-ascii')])
        mimetools.encode(htmlin, pout, 'quoted-printable')
        htmlin.close()
        #
        # Now that we're done, close our writer and
        # return the message body
        #
        writer.lastpart()
        msg = out.getvalue()
        out.close()
        return msg

if __name__=="__main__":
        import smtplib
        from time import *

        f = open("mssg.html", 'r')
        html = f.read()
        f.close()
        f = open("mssg.txt", 'r')
        text = f.read()
        f.close()
        subject = "subject)"

        f = open("temp.txt", 'r')
        RECIPIENTS = []
        for line in f:
            RECIPIENTS.append(line.strip())
        f.close()
        for i in RECIPIENTS:
            if len(i) == 0:
                RECIPIENTS.remove(i)
        print "Number of recipients: ", len(RECIPIENTS)

        SENDER = '[EMAIL PROTECTED]'
        print "Generating message..."
        mssg = createhtmlmail(html, text, subject)
        print "Opening session"
        session = smtplib.SMTP("localhost")
        print "Sending email"
        offset = 0
        blocksize = 20 # to send emails in blocks of 20, so I don't
bomb out my server
        while offset*blocksize < len(RECIPIENTS):
            print "Sending message ", offset*blocksize, " - ",
(offset+1)*blocksize, "of ", len(RECIPIENTS), "..."
            smtpresult =
session.sendmail(SENDER,RECIPIENTS[offset*blocksize:(offset+1)*blocksize],mssg)
            sleep(30)
            offset += 1
##      smtpresult = session.sendmail(SENDER, RECIPIENTS, mssg)

        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
        session.quit()

-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to