六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 127|回复: 0

python发送email

[复制链接]

升级  31%

83

主题

83

主题

83

主题

举人

Rank: 3Rank: 3

积分
293
 楼主| 发表于 2013-2-7 20:36:32 | 显示全部楼层 |阅读模式
第一种方法:
# -*- coding: utf-8 -*-import emailimport mimetypesfrom email.MIMEMultipart import MIMEMultipartfrom email.MIMEText import MIMETextfrom email.MIMEImage import MIMEImageimport smtplibdef sendEmail(authInfo, fromAdd, toAdd, subject, plainText, htmlText):        strFrom = fromAdd        strTo = ', '.join(toAdd)        server = authInfo.get('server')        user = authInfo.get('user')        passwd = authInfo.get('password')        if not (server and user and passwd) :                print 'incomplete login info, exit now'                return        # 设定root信息        msgRoot = MIMEMultipart('related')        msgRoot['Subject'] = subject        msgRoot['From'] = strFrom        msgRoot['To'] = strTo        msgRoot.preamble = 'This is a multi-part message in MIME format.'        # Encapsulate the plain and HTML versions of the message body in an        # 'alternative' part, so message agents can decide which they want to display.        msgAlternative = MIMEMultipart('alternative')        msgRoot.attach(msgAlternative)        #设定纯文本信息#        msgText = MIMEText(plainText, 'plain', 'utf-8')#        msgAlternative.attach(msgText)        #设定HTML信息        msgText = MIMEText(htmlText, 'html', 'utf-8')        msgAlternative.attach(msgText)       #设定内置图片信息#        fp = open('test.jpg', 'rb')#        msgImage = MIMEImage(fp.read())#        fp.close()#        msgImage.add_header('Content-ID', '<image1>')#        msgRoot.attach(msgImage)       #发送邮件        smtp = smtplib.SMTP()       #设定调试级别,依情况而定        smtp.set_debuglevel(1)        smtp.connect(server)        smtp.login(user, passwd)        smtp.sendmail(strFrom, strTo, msgRoot.as_string())#        smtp.sendmail(strFrom, strTo, msgRoot.as_string())        smtp.quit()        returnif __name__ == '__main__' :        authInfo = {}        authInfo['server'] = 'smtp.***.cn'        authInfo['user'] = '***@***.cn'        authInfo['password'] = '***'        fromAdd = '***@***.cn'        toAdd = ['***@163.com', '***@gamil.com']        subject = 'title'        plainText = '这里是普通文本'        htmlText = '<B>HTML文本</B>'        sendEmail(authInfo, fromAdd, toAdd, subject, plainText, htmlText)
第二种方法:
#coding=utf-8import smtplib,email,sysfrom email.Message import Messagesmtpserver='smtp.***.cn'smtpuser='***@***.cn'smtppass='***'smtpport='25'def connect():    "connect to smtp server and return a smtplib.SMTP instance object"    server=smtplib.SMTP(smtpserver,smtpport)    server.ehlo()    server.login(smtpuser,smtppass)    return server    def sendmessage(server,to,subj,content):    "using server send a email"    msg = Message()    msg['Mime-Version']='1.0'    msg['From']    = smtpuser    msg['To']      = to    msg['Subject'] = subj    msg['Date']    = email.Utils.formatdate()          # curr datetime, rfc2822    msg.set_payload(content)    try:            failed = server.sendmail(smtpuser,to,str(msg))   # may also raise exc    except Exception ,ex:        print Exception,ex        print 'Error - send failed'    else:        print "send success!"if __name__=="__main__":    #frm=raw_input('From? ').strip()#    to=raw_input('To? ').strip()#    subj=raw_input('Subj? ').strip()     to='***@***.com'    subj='title1111'        print 'Type message text, end with line="."'    text = 'content'#    while True:#        line = sys.stdin.readline()#        if line == '. ': break#        text += line    server=connect()    sendmessage(server,to,subj,text)
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表