python实现自动发送邮件

yipeiwu_com6年前Python基础

自动发送邮件功能是我们经常要用到的,比如每天定时统计报表信息,然后自动发送给运营人员,协助运营人员进行业务数据分析。本文是用Python写的一个自动发送邮件的脚本,调用函数时,直接把发件人邮箱地址、密码、收件人邮箱地址、邮件标题、内容等信息传递给函数,即可实现自动发送邮件功能。

脚本代码如下:

# -*- coding: UTF-8 -*- 
import sys, os, re, urllib, urlparse 
import smtplib 
import traceback 
from email.mime.text import MIMEText 
from email.mime.multipart import MIMEMultipart 
 
def sendmail(subject,msg,toaddrs,fromaddr,smtpaddr,password): 
 ''''' 
 @subject:邮件主题 
 @msg:邮件内容 
 @toaddrs:收信人的邮箱地址 
 @fromaddr:发信人的邮箱地址 
 @smtpaddr:smtp服务地址,可以在邮箱看,比如163邮箱为smtp.163.com 
 @password:发信人的邮箱密码 
 ''' 
 mail_msg = MIMEMultipart() 
 if not isinstance(subject,unicode): 
  subject = unicode(subject, 'utf-8') 
 mail_msg['Subject'] = subject 
 mail_msg['From'] =fromaddr 
 mail_msg['To'] = ','.join(toaddrs) 
 mail_msg.attach(MIMEText(msg, 'html', 'utf-8')) 
 try: 
  s = smtplib.SMTP() 
  s.connect(smtpaddr) #连接smtp服务器 
  s.login(fromaddr,password) #登录邮箱 
  s.sendmail(fromaddr, toaddrs, mail_msg.as_string()) #发送邮件 
  s.quit() 
 except Exception,e: 
  print "Error: unable to send email" 
  print traceback.format_exc() 
 
if __name__ == '__main__': 
 fromaddr = "xxxxxxxx@163.com" 
 smtpaddr = "smtp.163.com" 
 toaddrs = ["xxxxxxxx@qq.com","xxxxxxxxx@163.com"] 
 subject = "测试邮件" 
 password = "xxxxxxxx" 
 msg = "测试一下" 
 sendmail(subject,msg,toaddrs,fromaddr,smtpaddr,password) 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

Python中获取网页状态码的两个方法

第一种是用urllib模块,下面是例示代码: 复制代码 代码如下: import urllib status=urllib.urlopen("//www.jb51.net").code...

Python中返回字典键的值的values()方法使用

 values()方法返回给定的字典中所有可用值的列表。 语法 以下是values()方法的语法: dict.values() 参数   &...

Python延时操作实现方法示例

本文实例讲述了Python延时操作实现方法。分享给大家供大家参考,具体如下: 在日常的开发中,往往会遇到这样的需求,需要某一个函数在一段时间之后才执行以达到某种特定的效果。此时,我们就需...

Python调用.NET库的方法步骤

开发背景是这样的:整个项目中使用很多台摩托罗拉的RFID读卡器,我要为这些读卡器写一个管理程序,判断是否有RFID标签进入或离开某个区域。用户提供给我的,除了设备,就是一个.net的动态...

详解python中的生成器、迭代器、闭包、装饰器

迭代是访问集合元素的一种方式。迭代器是一个可以记住遍历的位置的对象。迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。 1|1可迭代对象 以直接作...