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设计】。

相关文章

OpenCV-Python实现轮廓检测实例分析

OpenCV-Python实现轮廓检测实例分析

相比C++而言,Python适合做原型。本系列的文章介绍如何在Python中用OpenCV图形库,以及与C++调用相应OpenCV函数的不同之处。这篇文章介绍在Python中使用Open...

python设置随机种子实例讲解

对于原生的random模块 import random random.seed(1) 如果不设置,则python根据系统时间自己定一个。 也可以自己根据时间定一个随机种子,如:...

Python如何使用函数做字典的值

这篇文章主要介绍了Python如何使用函数做字典的值,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 当需要用到3个及以上的if...e...

Python日期时间对象转换为字符串的实例

1、标准转换格式符号说明 %a 本地星期的短名称 如:Sun, Mon, ..., Sat (en_US); So, Mo, ..., Sa (de_DE) %A 本地星期全名称 如...

Python中DJANGO简单测试实例

本文实例讲述了Python中DJANGO简单测试的用法。分享给大家供大家参考。具体如下: 这里以facebook台湾的测试版为例。 仅仅测试用户登录,主要说明测试的使用和django环境...