python 发送邮件的示例代码(Python2/3都可以直接使用)
发送普通邮件
发送文本和html普通邮件如下:
fromemail.headerimportHeader fromemail.mime.textimportMIMEText fromemail.utilsimportparseaddr,formataddr importsmtplib def_format_addr(s): name,addr=parseaddr(s) returnformataddr((Header(name,'utf-8').encode(),addr)) defget_server(username): """ 通过邮箱地址获得邮箱服务器 :paramusername:用户名,比如:123456@qq.com :return:邮箱服务器地址,可以根据自己实际业务添加,比如:smtp.qq.com """ servers={'qq':'smtp.qq.com' ,'126':'smtp.126.com' ,'163':'smtp.163.com' ,'139':'smtp.139.com'} forkey,valueinservers.items(): ifkeyinusername: returnvalue defsend_mail(username,password,to,sender_name,subject,content,email_type): """ :paramusername: :parampassword: :paramto:接收者列表[] :paramsender_name: :paramsubject: :paramcontent: :paramemail_type: :return: """ from_addr=username password=password to_addr=to smtp_server=get_server(username) #邮件正文是MIMEText类型 msg=MIMEText('%s'%(content),'%s'%(email_type),'utf-8') msg['From']=_format_addr('%s<%s>'%(sender_name,from_addr)) msg['To']=_format_addr('<%s>'%to_addr) msg['Subject']=Header('%s'%(subject),'utf-8').encode() #普通登陆端口是25,带ssl验证时候端口是465 #smtp_server='smtp.exmail.qq.com' #server=smtplib.SMTP_SSL(smtp_server,465) server=smtplib.SMTP(smtp_server,25) server.set_debuglevel(1) server.login(from_addr,password) server.sendmail(from_addr,to_addr,msg.as_string()) server.quit() if__name__=='__main__': """发送简单文本邮件""" username='******@126.com' password='******' sender_name='******@126.com' subject='test邮件' content='ikeguang的来信
ikeguang.com